天天看点

《iPhone与iPad开发实战—iOS经典应用剖析》连载三

3.3     应用实战与讲解

这一节我们将实际编写这个应用,边做边讲解的方式。按照搭建应用骨架、视图翻转动画、主视图ui和代码、主视图控制器代码、背后视图ui和代码、背后视图控制器,这样的顺序编写和讲解。

3.3.1     构建应用骨架

在本书采用xcode3.2工具中提供了一个编写实用型应用程序的模板,图3-11是xcode3.2的模板,其中utility application选项就是创建实用型应用程序。

《iPhone与iPad开发实战—iOS经典应用剖析》连载三

图3-11 实用型应用模板

但是遗憾的是本应用的原作者代码,没有采用xcode3.2模板,我们比较一下它们的不同,使用xcode3.2生成的类图如图3-12所示。

《iPhone与iPad开发实战—iOS经典应用剖析》连载三

图3-12  xcode3.2生成的类

    为了尊重原作者,在本书中如果涉及到由于历史版本引起的问题,我们还是按照原作者应用始版本介绍和构建应用。

比较类图3-8和3-12会发现,xcode3.2没有mainview 和flipsideview两个自定义视图类,而是直接采用uiview类,xcode3.2中mainviewcontroller类还实现了一个flipsideviewcontrollerdelegate协议,flipsideviewcontrollerdelegate协议是旧版本中没有的,而xcode3.2中没有rootviewcontroller控制器类。这正是两个版本区别的关键,在旧版本中视图跳转和返回都是通过根控制器rootviewcontroller实现控制的,在xcode3.2中是通过mainviewcontroller实现flipsideviewcontrollerdelegate协议视图翻转控制的,mainviewcontroller即使主视图控制器也是根控制器。

由于我们要构建与旧版本一样的类,所以要添加mainview、flipsideview和rootviewcontroller类。先创建mainview选择main view文件夹,右键菜单new file弹出对话框如图3-13所示,选择objective-c class,subclass of为uiview,选择好后点击next,在类名中输入mainview。

《iPhone与iPad开发实战—iOS经典应用剖析》连载三

图3-13 创建uivew

mainview生成之后还需要修改对应的nib文件,在xcode中双击mainview.xib然后interface builder会打开mainview.xib窗口如图3-14所示,

《iPhone与iPad开发实战—iOS经典应用剖析》连载三

图3-14 mainview.xib窗口

从图3-14中可以看到view的类型是uiview,我们需要把它改成为mainview,为了实现这一个目的,请选择菜单tools->inspector打开检查器窗口,选择 标签打开检查器如图3-15所示,选择mainview类。

《iPhone与iPad开发实战—iOS经典应用剖析》连载三

图3-15视图检查器

选中双击main view打开设计窗口如图3-16所示,该视图是使用xcode3.2工具生成的,我们需要恢复到默认视图状态,如图3-17所示。

《iPhone与iPad开发实战—iOS经典应用剖析》连载三

图3-16 xcode3.2模板生成视图                             图3-17 修改后视图

为了达到这一效果需要删除 按钮,并把视图背景修改颜色为默认颜色。删除 按钮过程是用鼠标点中该按钮,使用键盘delete就可以删除了,而视图背景修改需要打开检查器窗口选择标签 后如图3-18,修改background属性使背景颜色被默认白色。

《iPhone与iPad开发实战—iOS经典应用剖析》连载三

图3-18 修改视图背景

按照上面的方法创建flipsideview类,该类创建完成需要修改它对应的flipsideview.xib文件,在interface builder会打开flipsideview.xib窗口,选中双击flipside view打开设计窗口如图3-19所示,该视图是使用xcode3.2工具生成的,我们需要恢复到默认视图状态,如图3-20所示。

《iPhone与iPad开发实战—iOS经典应用剖析》连载三

              图3-19 xcode3.2模板生成视图                                图3-20 修改后视图

为达到图3-20效果,需要删除title部分导航栏,在本应用中导航栏是通过代码动态添加到视图上面去的,而不是在视图设计窗口中拖拽上去的。删除导航栏和修完成背景后我们会发现视图变成如图3-21所示带有状态栏。

《iPhone与iPad开发实战—iOS经典应用剖析》连载三

图3-21 状态栏视图

我们需要去掉这个状态栏,打开视图检查器如图3-22所示,将status bar选择为unspecified。

《iPhone与iPad开发实战—iOS经典应用剖析》连载三

图3-22 视图检查器

并配置它们的创建过程完全一样这里就不再过多介绍了。下面介绍rootviewcontroller创建和配置,选择一个文件夹,右键菜单new file弹出对话框如图3-23所示,选择uiviewcontroller subclass,并在options部分去掉with xib for user interface,就是不创建nib文件。选择好后点击next,在类名中输入rootviewcontroller。

《iPhone与iPad开发实战—iOS经典应用剖析》连载三

图3-23 创建视图控制器

rootviewcontroller生成之后还需要修改mainwindow.xib文件,在xcode中双击mainwindow.xib然后interface builder会打开mainwindow.xib窗口如图3-24所示。点中mainviewcontroller后选择菜单tools->inspector打开检查器窗口,选择  标签打开检查器窗口在class中选择rootviewcontroller类。

《iPhone与iPad开发实战—iOS经典应用剖析》连载三

图3-24 mainwindow.xib窗口