UIPageControl控件在程序中出现的比较频繁,尤其在和UIScrollView配合来显示大量数据时,会使用它来控制UIScrollView的翻页。在滚动ScrollView时可通过PageControll中的小白点来观察当前页面的位置,也可通过点击PageContrll中的小白点来滚动到指定的页面。下面以一个简单但实用的例子来讲解PageControll的用法。

如上图中的曲线图和表格便是由ScrollView加载两个控件(UIWebView 和 UITableView)实用其翻页属性实现的页面滚动。而PageControll但当配合角色,页面滚动小白点会跟着变化位置,而点击小白点ScrollView会滚动到指定的页面。

代码:(只罗列主要代码)

- (void)viewDidLoad

{

[superviewDidLoad];

self.view.backgroundColor = [UIColorcolorWithPatternImage:[UIImageimageNamed:@"bg_blank.png"]];

//  self.view.backgroundColor = [UIColor clearColor];

//定义UIScrollView

scrollview = [[UIScrollViewalloc] init];

scrollview.frame = CGRectMake(10, 0, 300, 108);

scrollview.contentSize = CGSizeMake(600, 108);  //scrollview的滚动范围

scrollview.showsVerticalScrollIndicator = NO;

scrollview.showsHorizontalScrollIndicator = NO;

//myScrollView.clipsToBounds = YES;

scrollview.delegate = self;

scrollview.scrollEnabled = YES;

scrollview.pagingEnabled = YES; //使用翻页属性

scrollview.bounces = NO;

//定义WebView加载曲线图

webview = [[UIWebViewalloc] init];

webview.frame = CGRectMake(-7, -10, 307, 118);

webview.delegate = self;

[webviewsetBackgroundColor:[UIColorclearColor]];

[webviewsetOpaque:NO];

NSString *fullPath = [NSBundlepathForResource:@"sline"ofType:@"htm"inDirectory:[[NSBundlemainBundle] bundlePath]];

[self.webviewloadRequest:[NSURLRequestrequestWithURL:[NSURLfileURLWithPath:fullPath]]];

//用来制定边框

view22 = [[UIViewalloc] init];

//将图层的边框设置为圆脚

view22.layer.cornerRadius = 10;

view22.layer.masksToBounds = YES;

//给图层添加一个有色边框

view22.layer.borderWidth = 1;

//view1.layer.borderColor = [[UIColor colorWithRed:0.52 green:0.09 blue:0.07 alpha:1] CGColor];

view22.layer.borderColor = [[UIColorcolorWithRed:0green:0blue:0alpha:1] CGColor];

view22.frame = CGRectMake(0, 0, 300, 108);

view22.backgroundColor = [UIColorcolorWithRed:0.31green:0.31blue:0.31alpha:1];

tableview.frame = CGRectMake(0, 21, 300, 87);

tableview.allowsSelection = NO;

tableview.backgroundColor = [UIColorcolorWithRed:0.31green:0.31blue:0.31alpha:1];

//用来制定边框

view11 = [[UIViewalloc] init];

//将图层的边框设置为圆脚

view11.layer.cornerRadius = 10;

view11.layer.masksToBounds = YES;

//给图层添加一个有色边框

view11.layer.borderWidth = 1;

//view1.layer.borderColor = [[UIColor colorWithRed:0.52 green:0.09 blue:0.07 alpha:1] CGColor];

view11.layer.borderColor = [[UIColorcolorWithRed:0green:0blue:0alpha:1] CGColor];

view11.frame = CGRectMake(300, 0, 300, 108);

view11.backgroundColor = [UIColorblackColor];

[view11addSubview:tableview];

[scrollviewaddSubview:view11];

[view22addSubview:webview];

[scrollviewaddSubview:view22];

//定义PageControll

pageControl = [[UIPageControlalloc] init];

pageControl.frame = CGRectMake(150, 100, 20, 20);//指定位置大小

pageControl.numberOfPages = 2;//指定页面个数

pageControl.currentPage = 0;//指定pagecontroll的值,默认选中的小白点(第一个)

[pageControladdTarget:selfaction:@selector(changePage:)forControlEvents:UIControlEventValueChanged];

//添加委托方法,当点击小白点就执行此方法

[self.viewaddSubview:scrollview];

[self.viewaddSubview:pageControl];

}

//scrollview的委托方法,当滚动时执行

- (void)scrollViewDidScroll:(UIScrollView *)sender {

int page = scrollview.contentOffset.x / 290;//通过滚动的偏移量来判断目前页面所对应的小白点

pageControl.currentPage = page;//pagecontroll响应值的变化

}

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {

}

//pagecontroll的委托方法

- (IBAction)changePage:(id)sender {

int page = pageControl.currentPage;//获取当前pagecontroll的值

[scrollview setContentOffset:CGPointMake(300 * page, 0)];//根据pagecontroll的值来改变scrollview的滚动位置,以此切换到指定的页面

}

以上是一种简单的方法来实现pagecontroll的切换页面功能,以后会为大家添加 “无限循环切换页面”和“动态的增加和减少页面”。

转载于:https://www.cnblogs.com/aipingguodeli/archive/2012/05/08/2489917.html

我的开发笔记---UIPageControl的详细使用相关推荐

  1. Kinect开发笔记之一Kinect详细介绍

      毕业设计的课题我选择了结合Kinect和Unity3D开发体感游戏,这是我十分感兴趣的一个课题,所以做好当然责无旁贷.准备再写一系列Kinect的学习笔记,记录自己毕设一步一个脚印的历程.     ...

  2. [安卓开发笔记一]Android开发配置opencv环境超详细教程

    [安卓开发笔记一]Android开发配置opencv环境超详细教程 [更新于 2022年4月] 再次提醒,建议现在看到这篇文章的,仅仅把此文做一个流程参考,4年前android studio就使用cm ...

  3. SPRING注解驱动开发-雷神课程超详细笔记

    SPRING注解驱动开发-雷神课程超详细笔记 时间:2021-03-21 2022-04-06更新:最近翻起一年多前写的笔记复习,还是收获颇多,很多当时无法理解的知识现在慢慢能理解了,可能是工作一年的 ...

  4. iphone开发笔记和技巧总结

    在iphone程序中实现截屏的一种方法: //导入头文件   #importQuartzCore/QuartzCore.h //将整个self.view大小的图层形式创建一张图片imageUIGrap ...

  5. ios学习--iphone开发笔记和技巧总结(原址持续更新)

    ios学习--iphone开发笔记和技巧总结(原址持续更新) 分类: ios Object-C2012-04-18 10:16 2716人阅读 评论(1) 收藏 举报 uiviewiphonelist ...

  6. 【Visual C++】游戏开发笔记十三 游戏输入消息处理(二) 鼠标消息处理

    本系列文章由zhmxy555编写,转载请注明出处. http://blog.csdn.net/zhmxy555/article/details/7405479 作者:毛星云    邮箱: happyl ...

  7. 【Visual C++】游戏开发笔记二十七 Direct3D 11入门级知识介绍

    游戏开发笔记二十七 Direct3D 11入门级知识介绍 作者:毛星云    邮箱: happylifemxy@163.com    期待着与志同道合的朋友们相互交流 上一节里我们介绍了在迈入Dire ...

  8. Android移动APP开发笔记——最新版Cordova 5.3.1(PhoneGap)搭建开发环境

    引言 简单介绍一下Cordova的来历,Cordova的前身叫PhoneGap,自被Adobe收购后交由Apache管理,并将其核心功能开源改名为Cordova.它能让你使用HTML5轻松调用本地AP ...

  9. 安卓开发笔记——自定义广告轮播Banner(实现无限循环)

    关于广告轮播,大家肯定不会陌生,它在现手机市场各大APP出现的频率极高,它的优点在于"不占屏",可以仅用小小的固定空位来展示几个甚至几十个广告条,而且动态效果很好,具有很好的用户& ...

最新文章

  1. IDEA IntelliJ 如何新建一个不用任何框架的web项目
  2. 小郭经典mysql面试题资料_程序员经典面试题,Mysql是如何完成一次数据查询的...
  3. Mybatis和Spring整合
  4. HDOJ1216 Assistance Required 打表
  5. 转:Python Shell 清屏方法
  6. opencv 阈值分割_CVPR2019实例分割Mask Scoring RCNN
  7. 【完整版】当大师遇到了理工男,只能吐血了...
  8. 鸿蒙系统适配开发,捕获科技拟建立鸿蒙开发组 为区块链钱包客户适配鸿蒙系统做筹备...
  9. bulter机器人_科普!九款使用率最高的物流机器人大盘点!
  10. 一个域名解析到另一个域名_注册域名公司|教你如何注册一个.net域名
  11. Python正则表达式案例一则:单词非两端字符改为小写
  12. 【poj3375】 Network Connection
  13. React技术栈梳理
  14. aws lambda_AWS Lambda –无服务器编程
  15. jQuery中$.get()、$.post()和$.ajax()
  16. aar打包依赖 android_快速了解:十四、Android打包编译的进阶流程
  17. 在Chrome浏览器添加IDM插件——顽强版
  18. tao的开源代码_获取并编译TAO
  19. 【ACM- OJ】《六度分离》C++
  20. 中国联通沃云----弹性块存储使用说明

热门文章

  1. ios 自定义View 卡片滑动切换效果
  2. java基础—List集合的常规方法操作
  3. Oracle 数据库的基本用法
  4. 机器学习笔记(3) 随机森林
  5. 《Qt Quick 4小时入门》学习笔记4
  6. mongodb命令使用大全(常用命令)
  7. Yii2-admin RBAC权限管理的实现
  8. (原创)我也玩万能表单(自定义表单)(一)
  9. CSS基础「六」元素的显示与隐藏
  10. C++队列、堆栈、堆的区别