UIPageViewController
前言
- iPhone 和 iPad 都是通过页控件来展示多个桌面,很多 App 在第一次使用时也会使用页控件来介绍自己的功能,页控件的交互效果非常好,适用于把几个简单的页面充分展示出来。
1、UIPageControl 的创建
// 实例化页控制器
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;
2、UIPageControl 的设置
// 设置 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];
3、页控制器小圆点随视图滚动
3.1 页控制器小圆点随视图滚动
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
UIPageControl *pageControl = (id)[self.view viewWithTag:200];
// 计算当前页数
/*
小数四舍五入为整数:(int)(小数 + 0.5)
0.3 > (int)(0.3 + 0.5) > 0
0.6 > (int)(0.6 + 0.5) > 1
*/
int pageNum = (int)(scrollView.contentOffset.x / scrollView.frame.size.width + 0.5);
// 设置当前页
pageControl.currentPage = pageNum;
}
3.2 视图随页控制器小圆点滚动
/*
点击的是页控制器的左边或右边,依次左移或右移,具体点击某个点时没有反应
*/
- (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);
}
UIPageViewController的更多相关文章
- iOS UIPageViewController缺陷
为什么弃用UIPageViewController?问题1:设置UIPageViewController为UIPageViewControllerTransitionStyleScroll且调用set ...
- iOS UIPageViewController
UIPageViewController是App中常用的控制器.它提供了一种分页效果来显示其childController的View.用户可以通过手势像翻书一样切换页面.切换页面时看起来是连续的,但静 ...
- Learn how to Use UIPageViewController in iOS
下面学习内容来自国外的IOS学习网站:The AppGuruz: UIPageViewController in iOS 也许需要FQ哦 认真做一遍上面入门UIPageController的教程,然 ...
- UIPageViewController跳跃切换的问题
使用的是XHScrollMenu和UIPageViewController来构建5个页面: ViewController1, ViewController2, ViewController3, Vie ...
- 如何使用Storyboard创建UIPageViewController
之前我们已经讲过UIPageViewController,那篇文章演示了如何使用Interface Builder创建UIPageViewController.为了适配iOS7和Xcode5,我们重新 ...
- 关于UIPageViewController那些事
一.前言 这些天有新生问及UIPageViewController这个视图控制器,自己原来没有用过,所以就看了一下相关的知识,就写了下来,分享一下经验. 主要的关于这个控制器的内容就从例子中去解说了. ...
- swift:简单使用翻页控制器UIPageViewController
一.小叙 UIPageViewController是一个实现图书阅读的控制器,使用它可以设置书脊位置.单双页.过渡效果等,它是通过代理的方式来实现翻页,也即上一页.下一页.最终这个UIPageView ...
- UIPageViewController基本使用
UIPageViewController基本使用 @interface ViewController ()<UIPageViewControllerDelegate,UIPageViewCont ...
- iOS:UIPageViewController翻页控制器控件详细介绍
翻页控制器控件:UIPageViewController 介绍: 1.它是为我们提供了一种类似翻书效果的一种控件.我们可以通过使用UIPageViewController控件,来完成类似图书一样的翻页 ...
- iOS 5 :一个UIPageViewController程序示例
原文:http://www.techotopia.com/index.php/An_Example_iOS_5_iPhone_UIPageViewController_Application 在Xco ...
随机推荐
- 【Linux网络编程】基于TCP流 I/O多路转接(poll) 的高性能http服务器
服务器比较简陋,为了学习poll的使用,只向客户端回写一条html语句.启动服务器后,浏览器发起请求,服务端向浏览器写回html,响应字符串,然后可以看到,浏览器解析并显示 Hello Poll!. ...
- Redis 复制技术和高可用sentinel(哨兵模式)
redis的复制技术和高可用(哨兵模式) 1 复制 为什么要复制 实现数据的多副本存储,从而可以实现服务的高可用 提供更好的读性能复制技术的关键点及难点 如何指定被复制对象 增量还是全量以及如何实现增 ...
- 前端js上传文件后端C#接收文件
本文粗略的讲下前端文件上传和后端文件接收的原理 前端代码 html <form onsubmit="uploadFile(event)"> <input type ...
- object类型对象 ref参数如何理解?
class Program { static void Main(string[] args) { Student stu = new Student { Name = "老王" ...
- sql 的积累
sql的积累 By:山高似水深 原创 转载注明出处 .REVERSE() 反转 例如: Hive 可用 2016年12月3日11:31:59 2.instr(str,'.')位置 结果:得出在str中 ...
- 错误信息:"OraOLEDB.Oracle" 返回了消息 "ORA-12154: TNS: 无法解析指定的连接标识符
错误信息:"OraOLEDB.Oracle" 返回了消息 "ORA-12154: TNS: 无法解析指定的连接标识符 链接服务器"NC"的 OLE D ...
- render tree与css解析
浏览器在构造DOM树的同时也在构造着另一棵树-Render Tree,与DOM树相对应暂且叫它Render树吧,我们知道DOM树为javascript提供了一些列的访问接口(DOM API),但这棵树 ...
- Apollo问题
1.安装问题: 一不小心安装了NVIDIA,导致bash docker/scripts/dev_start.sh无法启动:[ERROR] Failed to start docker containe ...
- Angular01 利用grunt搭建自动web前端开发环境、利用angular-cli搭建web前端项目
搭建angular开发环境 一.下载并安装node 官网地址:点击前往 二.利用npm安装cnpm 安装好node后就可以使用npm命令啦 查看版本:npm -v 安装cnpm:npm install ...
- 关于c#分支语句和分支嵌套还有变量的作用域。
分支语句: if....else if....else 必须以 if 开头 后面加括号写入需要判断的内容. 举个栗子说明一下 if (bool类型(比较表达式)) // 他会判断括号内的条件是否 ...