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
- UI笔记_UIPageControl
- Easy-Ui 学习笔记
- android笔记 UI
- operamasks-ui使用笔记
- UI设计学习笔记
- Android笔记 - UI Dialog
- android UI设计笔记
- wxWidgets UI笔记
- JAVA(UI)笔记
- iOS ui 笔记
- UI笔记_UIView
- UI笔记_UILabel
- UI笔记_UITextField
- UI笔记_UIButton
- UI笔记_UIAlertView
- UI库学习笔记
- cocostudio UI 笔记
- Swift学习笔记-UI
- 水風井
- 刚接触开发板之接口接线工具
- windows下 wxPython 无法导入的解决方法
- 【比特科技】计算机专业就业指南(一)
- 【Nginx】事件驱动框架和异步处理
- UI笔记_UIPageControl
- linux/unix man用法
- 刚接触开发板之烧写裸板程序
- C++ Primer Plus第六版 第四章 编程练习答案
- linux c++之互斥变量和条件变量
- Nhibernate 对view 查询的几种方法
- 刚接触开发板之重烧珍整个系统
- Java基础——Statement与PrepareStatement
- 【测试折腾】NVR底层模拟鼠标控制测试驱动