iOS 开发-平铺导航-基于 Page 的导航及案例实现
基于分页导航实现
在
iOS 5 之后,可以使用分页控制器(UIPageViewController)构建类似于电子书效果的应
用,我们称为基于分页的应用。一个分页应用有很多相关的视图控制器
分页控制器(
PageViewController)需要放置在一个父视图控制器中,在分页控制器下面还
要有子视图控制器,每个子视图控制器对应图中的一个页面。
在基于分页导航实现的应用中需要的类和协议:
UIPageViewControllerDataSource 协议和
UIPageViewControllerDelegate 协议和 UIPageViewController 类,UIPageViewController 没有
对应的视图类。
UIPageViewControllerDelegate 委托协议中,最重要的方法为
pageViewController:spineLocationForInterfaceOrientation:,它根据屏幕旋转方向设置书脊位
置
(Spine Location)和初始化首页。
UIPageViewController 中有两个常用的属性:双面显示(doubleSided)和书脊位置
(
spineLocation)。
1.双面显示,是在页面翻起的时候,偶数页面会在背面显示。图为 doubleSided 设置为 YES
情况,图
6-14 中图为 doubleSided 设置为 NO(单面显示),单面显示在页面翻起的时候,
能够看到页面的背面,背面的内容是当前页面透过去的,与当前内容是相反的镜
像。
2.书脊位置。书脊位置也是很重要的属性,但是它的 spineLocation 属性是只读的,要设置它,
需要通过
UIPageViewControllerDelegate 委托协议中的
pageViewController:spineLocationForInterfaceOrientation:方法。书脊位置由枚举
UIPageViewControllerSpineLocation 定义,该枚举类型下的成员变量如下所示。
下面我们使用页面导航实现城市信息这个应用。使用
Single View Application 模板创建一个
名为
PageNavigation 的工程。
可以从
PageControlNavigation 工程中复制过来,方法是在打开 MainStoryboard.storyboard 选
中
3 个视图 控制器,按下 Command+C 组合键拷贝,再到 PageNavigation 中打开
MainStoryboard.storyboard,按下 Command+V 组合键粘贴,就可以了。
这样
UI 设计工作就结束了,下面的工作都是由代码完成的。我们先看看 ViewController.h 的
代码:
1
#import <UIKit/UIKit.h>
2
3
@interface
ViewController
:
UIViewController
找软件资料,就到一览软件文库