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 ...
随机推荐
- TLD视觉跟踪算法
TLD算法好牛逼一个,这里有个视频,是作者展示算法的效果,http://www.56.com/u83/v_NTk3Mzc1NTI.html.下面这个csdn博客里有人做的相关总结,感觉挺好的,收藏了! ...
- 设置Nodejs NPM全局路径
Windows下的Nodejs npm路径是appdata 在nodejs的安装目录中找到node_modules\npm\.npmrc文件 修改如下即可: prefix = E:\nodejs\np ...
- 在Mac系统下使用自己安装的PHP
今天在安装单元测试框架PHPUnit,需要PHP的最低版本是5.6,由于我的MacBook自带的PHP版本是5.5.36,不能满足安装条件. 看了一下这个网址:https://php-osx.liip ...
- 使用批处理自动发布IIS站点,基于IIS7及以上
经过研究,终于使用批处理解决了站点发布步骤多的问题. 完整批处理如下: @set "sitePath=%~dp0" @echo 新建程序池 @C:\Windows\System32 ...
- 一个分类,两个问题之ArrayList
前段时间,在做一个商品的分类,分类有3级,类似于以下这种形式的: ---食物 ---蔬菜 ---白菜 ---材料 ---鸡肉 ....... 而我需要做的是将取得的一个商品的字符串类型的分类ID集,然 ...
- 32位模式下C/C++程序可用最大内存
关于32位程序申请大内存问题(1.6G). 我在win7 64系统上面测试Visual studio 10 int* Test=new int[1024*1024*200]; int* Test2=n ...
- 侯捷STL学习(七)--深度探索vector&&array
layout: post title: 侯捷STL学习(七) date: 2017-06-13 tag: 侯捷STL --- 第十六节 深度探索vector vector源码剖析 vector内存2倍 ...
- Rails:Rails使用sqlite3数据库 及数据操作基本命令
Rails默认使用sqlite3做为数据库,虽然很多人更喜欢mysql.但如果是学习用,sqlite3够了,因为它轻量,不需要安装. 首先对sqlite3做个简短的介绍:1.sqlite3不需要配置, ...
- 程序中使用log4J打印信息的两种方式
(1)通过org.apache.commons.logging.Log 接口实例化: public static Log log = LogFactory.getLog(String name); p ...
- javascript——屏蔽右键快捷菜单
JS: function menufalse(){ return false; } document.oncontextmenu = menufalse; //禁用快捷菜单 Jquery: $(&qu ...