3.3     应用实战与讲解
这一节我们将实际编写这个应用,边做边讲解的方式。按照搭建应用骨架、视图翻转动画、主视图UI和代码、主视图控制器代码、背后视图UI和代码、背后视图控制器,这样的顺序编写和讲解。
3.3.1     构建应用骨架
在本书采用Xcode3.2工具中提供了一个编写实用型应用程序的模板,图3-11是Xcode3.2的模板,其中Utility Application选项就是创建实用型应用程序。
  

图3-11 实用型应用模板

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

图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。
  

图3-13 创建UIVew
MainView生成之后还需要修改对应的nib文件,在Xcode中双击MainView.xib然后Interface Builder会打开MainView.xib窗口如图3-14所示,

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

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

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


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

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

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

图3-22 视图检查器
并 配置它们的创建过程完全一样这里就不再过多介绍了。下面介绍RootViewController创建和配置,选择一个文件夹,右键菜单New File弹出对话框如图3-23所示,选择UIViewController subclass,并在Options部分去掉With XIB for user interface,就是不创建nib文件。选择好后点击Next,在类名中输入RootViewController。
  

图3-23 创建视图控制器
RootViewController 生成之后还需要修改MainWindow.xib文件,在Xcode中双击MainWindow.xib然后Interface Builder会打开MainWindow.xib窗口如图3-24所示。点中MainViewController后选择菜单 Tools->Inspector打开检查器窗口,选择  标签打开检查器窗口在Class中选择RootViewController类。

图3-24 MainWindow.xib窗口

转载于:https://www.cnblogs.com/516inc/archive/2012/05/27/2520365.html

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

  1. iPhone与iPad开发实战——iOS 经典应用剖析视频--观看地址

    iPhone与iPad开发实战--iOS 经典应用剖析视频 试看地址:http://v.51work6.com/courseInfoRedirect.do?action=courseInfo& ...

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

    3.2  应用剖析 这一节我们从应用的类图如入手,了解应用中有哪些类,以及这个类中的方法.成员变量和属性.nib文件有哪些.还会介绍MVC设计模式等. 3.2.1  核心类图 在该应用中涉及到9个类, ...

  3. iPhone与iPad开发实战读书笔记

    iPhone开发一些读书笔记 手机应用分类 1.教育工具 2.生活工具 3.社交应用 4.定位工具 5.游戏 6.报纸和杂志的阅读器 7.移动办公应用 8.财经工具 9.手机购物应用 10.风景区相关 ...

  4. 浅谈iPhone和iPad开发中的图标设置

    浅谈iPhone和iPad开发中的图标设置 图标大小问题 我们的辛辛苦苦做出来的应用程序在iPhone上的表示仅仅是一个图标,对这个图标不可以不谨慎对待,不能因为大小不对头这些小问题而失真啊什么的. ...

  5. iPhone和iPad开发书籍大全

    CocoaChina 苹果开发中文站 http://www.cocoachina.com/ Learning.iOS.Game.Programming(Addison.Wesley.2010-09) ...

  6. iPhone和iPad开发书籍大全.迅雷高速下载

    转自:http://www.lwxshow.com/archives/477 iPhone和iPad开发书籍大全 迅雷下载 iPhone和iPad开发书籍大全 高速下载

  7. 【Python开发】Flask开发实战:个人博客(三)

    Flask开发实战:个人博客(三) 在[Python开发]Flask开发实战:个人博客(一) 中,我们已经完成了 数据库设计.数据准备.模板架构.表单设计.视图函数设计.电子邮件支持 等总体设计的内容 ...

  8. 如何将iPhone或iPad更新到iOS 11

    Apple released iOS 11 on September 19, 2017. You can upgrade by tapping "Install Now" when ...

  9. iPhone和iPad开发中的图标大小和设置

    我们的辛辛苦苦做出来的应用程序在iPhone上的表示仅仅是一个图标,对这个图标不可以不谨慎对待,不能因为大小不对头这些小问题而失真啊什么的. 那么,你知道图标的大小和格式吗? 本文适用于iPhone, ...

  10. (iPhone/iPad开发)iOS中生成随机数

    ios 有如下三种随机数方法: 1.    srand((unsigned)time(0));  //不加这句每次产生的随机数不变         int i = rand() % 5; 2.     ...

最新文章

  1. 什么叫PMP?项目管理的本质是什么?
  2. 无人超市不便宜 一包棒棒糖比传统超市贵5.7元
  3. 【转】Unity Animator卡顿研究
  4. nginx / 安装、部署和启动
  5. 每日求一录~20170704
  6. windows笔记-内核对象
  7. python伪造请求头x-forwarded-for的作用_Pyspider中给爬虫伪造随机请求头的实例
  8. 通过反射--操作运行时类中的指定的属性/方法
  9. Permutations II
  10. openssl paho.mqtt交叉编译
  11. Windows域策略设置 禁止客户端修改IP地址【全域策略生效】
  12. 小小c#算法题 - 1 - 找出数组中满足条件的两个数
  13. Linux内核多线程(四)
  14. Impala集群搭建报错,主节点启动成功,但是worker节点的impalad启动失败
  15. python控制浏览器脚本_Chrome 33+浏览器 Cookies encrypted_value解密脚本(python实现)...
  16. DDK for windows
  17. 工程流体力学笔记暂记16(欧拉积分和伯努利积分)
  18. 基于AS的学生教务系统
  19. 【vue】vue项目启动设置默认启动页
  20. vc6.0关于code jock在打开多文档debug版本崩溃的问题解决

热门文章

  1. FCKeditor在ASP.NET环境中配置使用
  2. 顶点计划 班委问题讨论
  3. net core 通过js打印集合(创建树)
  4. CSS3 filter属性学习
  5. 【精选】Nginx负载均衡学习笔记(一)实现HTTP负载均衡和TCP负载均衡(官方和OpenResty两种负载配置)...
  6. 可视化操作和命令化操作
  7. 性能调试工具——oprofile
  8. Android Alertdialog之多选对话框
  9. Mysql:命令选项、配置选项、(全局、会话)系统变量、状态变量:SQL模式
  10. 通过Shiny app实现疫苗预防疾病的过程