background image

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 

                   找软件资料,就到一览软件文库

http://wk.yl1001.com/rj/