iOS - UIPageViewController
前言
NS_CLASS_AVAILABLE_IOS(2_0) @interface UIPageControl : UIControl @available(iOS 2.0, *) public class UIPageControl : UIControl
- iPhone 和 iPad 都是通过页控件来展示多个桌面,很多 App 在第一次使用时也会使用页控件来介绍自己的功能,页控件的交互效果非常好,适用于把几个简单的页面充分展示出来。
1、UIPageControl 的创建
Objective-C
// 实例化页控制器UIPageControl *pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(0, 0, 300, 30)];// 添加到窗口中[self.view addSubview:pageControl];// 设置位置pageControl.center = CGPointMake(self.view.bounds.size.width / 2, self.view.bounds.size.height - 50); // 设置个数pageControl.numberOfPages = 15;
Swift
// 实例化页控制器let pageControl = UIPageControl(frame: CGRectMake(0, 0, 300, 30))// 添加到窗口中self.view.addSubview(pageControl)// 设置位置pageControl.center = CGPointMake(self.view.bounds.size.width / 2, self.view.bounds.size.height - 50)// 设置个数pageControl.numberOfPages = 15
2、UIPageControl 的设置
Objective-C
// 设置 frame/*高度设置无效*/pageControl.frame = CGRectMake(10, 200, 10, 0);// 设置位置pageControl.center = CGPointMake(self.view.bounds.size.width / 2, self.view.bounds.size.height - 50);// 设置个数pageControl.numberOfPages = 15;// 设置颜色// 当前页面小圆点的颜色pageControl.currentPageIndicatorTintColor = [UIColor greenColor];// 其它页面小圆点的颜色pageControl.pageIndicatorTintColor = [UIColor redColor];// 设置当前页/*设置高亮显示点*/pageControl.currentPage = 0;// 设置只有一页时是否隐藏页码指示器/*default is NO*/pageControl.hidesForSinglePage = YES;// 设置是否可点击/*点击的是页控制器的左边或右边,依次左移或右移,具体点击某个点时没有反应*/pageControl.userInteractionEnabled = YES;// 添加点击触发事件 /*点击的是页控制器的左边或右边,依次左移或右移,具体点击某个点时没有反应*/[pageControl addTarget:self action:@selector(pageControlClick:) forControlEvents:UIControlEventValueChanged];
Swift
// 设置 frame/*高度设置无效*/pageControl.frame = CGRectMake(10, 200, 10, 0)// 设置位置pageControl.center = CGPointMake(self.view.bounds.size.width / 2, self.view.bounds.size.height - 50)// 设置个数pageControl.numberOfPages = 15// 设置颜色// 当前页面小圆点的颜色pageControl.currentPageIndicatorTintColor = UIColor.greenColor()// 其它页面小圆点的颜色pageControl.pageIndicatorTintColor = UIColor.redColor()// 设置当前页/*设置高亮显示点*/pageControl.currentPage = 0// 设置只有一页时是否隐藏页码指示器/*default is false*/pageControl.hidesForSinglePage = true// 设置是否可点击/*点击的是页控制器的左边或右边,依次左移或右移,具体点击某个点时没有反应*/pageControl.userInteractionEnabled = true// 添加点击触发事件/*点击的是页控制器的左边或右边,依次左移或右移,具体点击某个点时没有反应*/pageControl.addTarget(self, action: #selector(UiPageViewController1.pageControlClick(_:)), forControlEvents: .ValueChanged)
3、页控制器小圆点随视图滚动
Objective-C
页控制器小圆点随视图滚动
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {UIPageControl *pageControl = (id)[self.view viewWithTag:200];// 计算当前页数/*小数四舍五入为整数:(int)(小数 + 0.5)0.3 > (int)(0.3 + 0.5) > 00.6 > (int)(0.6 + 0.5) > 1*/int pageNum = (int)(scrollView.contentOffset.x / scrollView.frame.size.width + 0.5);// 设置当前页pageControl.currentPage = pageNum;}
视图随页控制器小圆点滚动
/*点击的是页控制器的左边或右边,依次左移或右移,具体点击某个点时没有反应*/- (void)pageControlClick:(UIPageControl *)pageControl {UIScrollView *scrollView = (id)[self.view viewWithTag:100];// 计算点击的页面CGFloat pageOffsetX = scrollView.frame.size.width * pageControl.currentPage;// 设置 scrollView 的偏移量scrollView.contentOffset = CGPointMake(pageOffsetX, 0);}
Swift
页控制器小圆点随视图滚动
func scrollViewDidScroll(scrollView: UIScrollView) {let pageControl = self.view.viewWithTag(200) as! UIPageControl// 计算当前页数/*小数四舍五入为整数:Int(小数 + 0.5)0.3 > (int)(0.3 + 0.5) > 00.6 > (int)(0.6 + 0.5) > 1*/let pageNum = Int(scrollView.contentOffset.x / scrollView.frame.size.width + 0.5)// 设置当前页pageControl.currentPage = pageNum}
视图随页控制器小圆点滚动
/*点击的是页控制器的左边或右边,依次左移或右移,具体点击某个点时没有反应*/func pageControlClick(pageControl:UIPageControl) {let scrollView = self.view.viewWithTag(100) as! UIScrollView// 计算点击的页面let pageOffsetX = scrollView.frame.size.width * CGFloat(pageControl.currentPage)// 设置 scrollView 的偏移量scrollView.contentOffset = CGPointMake(pageOffsetX, 0)}
4、Storyboard 中设置
在 Storyboard 场景中设置
Page View Controller 设置
Navigation 分页的方向,水平或垂直 Transition Style 翻页的样式,书卷翻页或滑动翻页 Page Spacing 页面间距,只有滑动翻页样式有效 Spine Location 书脊位置,只有书卷翻页样式有效 -- Double Sided Page Control 设置
Pages 页面数和当前页 Behavior -- Hides for Single Page 单页面时隐藏 -- Defers Page Display 延缓页面显示 Tint Color 页面指示器的颜色 Current Page 当前页面的指示器的颜色
在 Storyboard 场景绑定的 Controller 中设置
pageViewController 的实例化与要显示的页面(ViewControllers)都需在代码中实现。
// 页面指示器默认为白色,不设置颜色显示不出来UIPageControl *pageControl = [UIPageControl appearance];
转载于:https://www.cnblogs.com/QianChia/p/5758294.html
iOS - UIPageViewController相关推荐
- iOS翻页视图控制器UIPageViewController的应用
2019独角兽企业重金招聘Python工程师标准>>> iOS翻页视图控制器UIPageViewController的应用 一.引言 UIPageViewController是iOS ...
- iOS中常见的6种传值方式,UIPageViewController
通过属性传值.方法传值.代理传值.Block传值.单例传值.通知传值6种方式进行不同视图之间的传值.不同方式只需要在AppDelegate中更改下UINavigationController的根控制器 ...
- iOS 开发之 pdf 文档的加载与浏览的 4 种方式
原文链接:http://www.jianshu.com/p/1d4305a02ea5 在我们的开发中,有些像电子书类型的 app 的开发会涉及到 pdf 文档的加载与展示.由于笔者项目中正好涉及到这块 ...
- 开源中国iOS客户端学习——(一)Prefix.pch文件
2019独角兽企业重金招聘Python工程师标准>>> 当我们新建一个工程的时候,在Supporting FIles文件下会看到一个以 -Prefix.pch结尾文件的文件,pch ...
- UIPageViewController教程
UIPageViewController简介 UIPageViewController是iOS 5.0之后提供的一个分页控件可以实现图片轮播效果和翻书效果.使用起来也很简单方便. UIPageView ...
- iOS开发那些事-平铺导航-基于Page的导航及案例实现
基于分页导航实现 在iOS 5之后,可以使用分页控制器(UIPageViewController)构建类似于电子书效果的应用,我们称为基于分页的应用.一个分页应用有很多相关的视图控制器 分页控制器(P ...
- iOS 快速实现分页界面的搭建
级别: ★★☆☆☆ 标签:「iOS」「分页」「QiPageMenuView」 作者: 沐灵洛 审校: QiShare团队 iOS 快速实现分页界面的搭建 项目中我们经常会遇到滚动分页的设计效果,被用来 ...
- ios开发之.pch文件的使用
案例:开源中国iOS客户端 当我们新建一个工程的时候,在Supporting FIles文件下会看到一个以 -Prefix.pch结尾文件的文件,pch全称是"precompi ...
- iOS UIPageControl
In this tutorial, we'll be discussing and implementing the UIPageControl element in our iOS Applicat ...
最新文章
- 使用ASIHTTPRequest 编译提示找不到libxml/HTMLparser.h的解决方法
- 【288天】每日项目总结系列026(2017.11.20)
- Lvs Tun隧道模式配置
- hibernate session 新增、删除,修改、查询样例
- 捡起JavaScript(1)
- java 如何导出json文件_java导出json格式文件的示例代码
- 使用Anaconda进行环境和包的管理
- matplotlib绘制虚线_[Matplotlib习题]虚线绘图练习
- double write buffer
- VS2015 property manager
- 转载:AD的授权还原和主还原:深入浅出Active Directory系列(六)
- 《Outlier Analysis》书籍
- linux 编译chromium,简易编译Chromium OS内核教程
- 修改Linux文件格式为unix
- 走进龙芯3A3000(二)安装Gentoo N64
- alios是安卓吗_鸿蒙OS系统被质疑,谷歌也有新布局!阿里云OS事件会再现吗?
- G1D38-Evaluation Metrics
- hive中NULL值问题
- 计算机网络用英语怎么表达,网络用英语怎么说
- 《重说中国近代史》—张鸣—(4)古老命题新解(1)