前言

  • 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的更多相关文章

  1. iOS UIPageViewController缺陷

    为什么弃用UIPageViewController?问题1:设置UIPageViewController为UIPageViewControllerTransitionStyleScroll且调用set ...

  2. iOS UIPageViewController

    UIPageViewController是App中常用的控制器.它提供了一种分页效果来显示其childController的View.用户可以通过手势像翻书一样切换页面.切换页面时看起来是连续的,但静 ...

  3. Learn how to Use UIPageViewController in iOS

    下面学习内容来自国外的IOS学习网站:The AppGuruz: UIPageViewController in iOS  也许需要FQ哦 认真做一遍上面入门UIPageController的教程,然 ...

  4. UIPageViewController跳跃切换的问题

    使用的是XHScrollMenu和UIPageViewController来构建5个页面: ViewController1, ViewController2, ViewController3, Vie ...

  5. 如何使用Storyboard创建UIPageViewController

    之前我们已经讲过UIPageViewController,那篇文章演示了如何使用Interface Builder创建UIPageViewController.为了适配iOS7和Xcode5,我们重新 ...

  6. 关于UIPageViewController那些事

    一.前言 这些天有新生问及UIPageViewController这个视图控制器,自己原来没有用过,所以就看了一下相关的知识,就写了下来,分享一下经验. 主要的关于这个控制器的内容就从例子中去解说了. ...

  7. swift:简单使用翻页控制器UIPageViewController

    一.小叙 UIPageViewController是一个实现图书阅读的控制器,使用它可以设置书脊位置.单双页.过渡效果等,它是通过代理的方式来实现翻页,也即上一页.下一页.最终这个UIPageView ...

  8. UIPageViewController基本使用

    UIPageViewController基本使用 @interface ViewController ()<UIPageViewControllerDelegate,UIPageViewCont ...

  9. iOS:UIPageViewController翻页控制器控件详细介绍

    翻页控制器控件:UIPageViewController 介绍: 1.它是为我们提供了一种类似翻书效果的一种控件.我们可以通过使用UIPageViewController控件,来完成类似图书一样的翻页 ...

  10. iOS 5 :一个UIPageViewController程序示例

    原文:http://www.techotopia.com/index.php/An_Example_iOS_5_iPhone_UIPageViewController_Application 在Xco ...

随机推荐

  1. c# Chart 服务器端动态创建ChartArea

    1 aspx <x:ContentPanel ShowBorder="true" ShowHeader="false" ID="ContentP ...

  2. Python中获得当前目录和上级目录

    [转]原文地址:http://blog.csdn.net/liuweiyuxiang/article/details/71154346 获取当前文件的路径: from os import path d ...

  3. Dubbo各种协议详解

    (1)协议支持 Dubbo支持多种协议,如下所示: Dubbo协议 Hessian协议 HTTP协议 RMI协议 WebService协议 Thrift协议 Memcached协议 Redis协议 在 ...

  4. Java-API:java.util.UUID

    ylbtech-Java-API:java.util.UUID 1.返回顶部   2.返回顶部   3.返回顶部   4. 百科返回顶部   5.返回顶部 0. https://docs.oracle ...

  5. Celery-4.1 用户指南: Periodic Tasks (定时任务)

    简介 celery beat 是一个调度器:它以常规的时间间隔开启任务,任务将会在集群中的可用节点上运行. 默认情况下,入口项是从 beat_schedule 设置中获取,但是自定义的存储也可以使用, ...

  6. 第八章 Java中的并发工具类

    等待多线程完成的CountDownLatch countDownLatch允许一个或多个线程等待其他线程完成操作. public class CountDownLatchTest { static C ...

  7. 管理linked break-off snapshot

    1. 建立linked break-off snapshot   (1) 建立原卷 #> vxassist -g APS2_AFC_DG make vol1 4096000 #> vxpr ...

  8. DAY10-MYSQL完整性约束

    一 介绍 约束条件与数据类型的宽度一样,都是可选参数 作用:用于保证数据的完整性和一致性主要分为: PRIMARY KEY (PK) 标识该字段为该表的主键,可以唯一的标识记录 FOREIGN KEY ...

  9. DAY7-面向对象之绑定方法与非绑定方法

    一.类中定义的函数分成两大类 一:绑定方法(绑定给谁,谁来调用就自动将它本身当作第一个参数传入): 1. 绑定到类的方法:用classmethod装饰器装饰的方法. 为类量身定制 类.boud_met ...

  10. 玩转Jquery

    一 jquery简介 1 jquery是什么 jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多 javascript高手加入其team. jQuery是继prototype ...