UI笔记_UIPageControl

来源:互联网 发布:谷歌浏览器安全吗 知乎 编辑:程序博客网 时间:2024/06/15 20:05

UIPageControl

UIPageControl是屏幕翻页时下方出现的小圆点,用于指示当前第几页,通常和与UIScrollView配合使用。

// 创建UIPageControlUIPageControl *pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(20, 400, 280, 50)];// 设置页数(圆点个数)[pageControl setNumberOfPages:7];// UIPageControl继承于UIControl和其他子类一样 使用addTarget方法添加事件,触发方式为valueChanged[pageControl addTarget:self action:@selector(pageControlAction:) forControlEvents:UIControlEventValueChanged];[self.view addSubview:pageControl];[pageControl release];

未实现代理方法之前,pageControl只能通过点击pageControl来翻页并不与scrollView中的滚动关联,所以需要为scrollView设置代理,

当scrollView滚动到相应位置时,改变pageControl的currentPage来实现pageControl和scrollView匹配

(注意 这里是先滚动视图,再改变pageControl的值,所以代理要设置在scrollView中)

实现方法:

签订协议,并为scrollView设置代理人为self(当前viewController代理)

将pageControl对象设置为属性,方便在代理方法的实现中改变currentPage

实现代理方法,至于代理方法的实现位置,可以是滚动开始,也可以是滚动结束,注意偏移量的匹配

- (void)scrollViewDidScroll:(UIScrollView *)scrollView{    // scrollView的偏移量,除以scrollView的宽度,得到当前页数    int pageNumber = scrollView.contentOffset.x / scrollView.frame.size.width;    //  将页数赋值给pageControl,使他跟随scrollView的滚动而变化    self.page setCurrentPage:pageNumber];}

以上方法可以通过滚动视图来控制圆点的变化,反之,如果想要通过圆点的点击或者滑动来改变滚动视图,需要实现在pageControl定义的方法

- (void)pageControlAction:(UIPageControl *)pageControl{    // 获取到pageControl的currentPage乘以scrollView的宽度 把结果赋值给scrollView的偏移量,    // 使之跳转到对应图片位置,从而实现点击pageControl来改变scrollView    [scrollView setContentOffset:[CGPointMake(pageControl.currentPage * self.view.frame.size.width), 0]];}

0 0
原创粉丝点击