UIWindow、UIView与UIViewController的关系

1.UIWindow(窗口)

UIWindow是一个特殊的UIView,UIWindow类继承自UIView。一般来说,一个App只有一个UIWindow,但特定情况下也会出现多个UIWindow,例如,键盘弹出的情况下,就会存在多个UIWindow。iOS启动完毕后,创建的第一个视图控件就是UIWindow,此时需要给UIWindow对象指定根控制器,即设置rootViewController属性,系统会自动把rootViewController的view添加到window上,从而在屏幕上就可以显示出程序启动后的初始界面。rootViewcontroller是应用程序的根控制器,只要App未被销毁,则rootViewcontroller就不会被销毁。

2.UIView(视图)

每个UIView都负责在屏幕上一个特定矩形区域的显示,可以通过设置backgroundColor属性来查看该矩形区域的范围。每个UIView对象除了要负责渲染视图矩形区域内的内容之外,还要响应该区域中发生的用户交互事件,因为UIView继承自UIResponder类,并且每个UIView对象中都可以添加一个或多个子UIView对象。UIView对象只有显示在UIWindow上,用户才能看到界面的样式。通过UIView类的window属性,可以获得该UIView对象所在的UIWindow对象。

3.UIViewController(视图控制器)

每个UIViewController都有一个view属性,用于显示该控制器的外观样式。UIViewController类负责管理在view上显示的数据,并协调它们和应用程序其他部分的关系。UIViewController类负责创建其管理的视图,并且在内存不足时,将它们从内容中移出,可以在didReceiveMemoryWarning方法中实现。除此之外,视图控制器还为某些标准的系统行为提供自动响应。例如,在设备方向变化时,如果应用程序支持该方向,视图控制器可以对其管理的视图进行尺寸调整,使其适应新的方向。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
iPhone开发秘籍 The iPhone Developer's Cookbook Building Applications with the iPhone SDK 本电子书共295页 Amazon超级畅销书 大量未公开的绝技,带你深入iPhone开发秘境 任务驱动,丰富的实战代码,让你触类旁通 目录 第1章 iphone sdk简介. 1 1.1 苹果公司的iphone sdk 1 1.2 组建iphone项目 2 1.3 iphone应用程序组件 3 1.3.1 应用程序文件夹层次结构 3 1.3.2 可执行文件 3 1.3.3 info.plist文件 4 1.3.4 图标和默认图像 5 1.3.5 xib(nib)文件 5 1.3.6 应用程序束中不存在的文件 5 1.3.7 沙盒 6 1.4 平台限制 6 1.4.1 存储限制 6 1.4.2 数据访问限制 7 1.4.3 内存限制 7 1.4.4 交互限制 7 1.4.5 电量限制 7 1.4.6 应用程序限制 8 1.4.7 用户行为限制 8 1.5 sdk限制 8 .1.6 编程范型 9 1.6.1 面向对象编程 9 1.6.2 模型—视图—控制器 9 1.7 构建iphone应用程序主干 15 1.8 hello world应用程序 15 1.8.1 类 17 1.8.2 代码 18 1.8.3 关于示例代码和内存管理的 注意事项 18 1.9 构建hello world应用程序 19 1.9.1 创建iphone项目 19 1.9.2 运行主干 20 1.9.3 定制iphone项目 20 1.9.4 编辑标识信息 21 1.9.5 使用调试器 21 1.10 苹果公司的iphone开发人员计划 23 1.10.1 开发电话 23 1.10.2 应用程序标识符 23 1.11 从xcode到iphone:organizer界面 24 1.11.1 projects & sources列表 25 1.11.2 devices列表 25 1.11.3 summary选项卡 25 1.11.4 console选项卡 25 1.11.5 crash logs选项卡 25 1.11.6 screenshot选项卡 25 1.11.7 关于限制(tethering) 26 1.11.8 在iphone上测试应用程序 26 1.11.9 编译以分发 27 1.12 使用文档中未记录的api调用 28 1.13 ad hoc分发 28 1.14 小结 29 第2章 视图 30 2.1 uiviewuiwindow 30 2.1.1 层次结构 30 2.1.2 几何特征 31 2.1.3 手势 34 2.2 秘诀:添加递进式子视图 34 2.3 秘诀:拖动视图 36 2.3.1 uitouch 37 2.3.2 添加持久性 39 2.4 秘诀:剪辑视图 42 2.4.1 通过剪辑平衡触摸 43 2.4.2 访问逐个像素值 43 2.5 秘诀:检查多点触摸 45 2.6 uiview动画 48 2.7 秘诀:淡入和淡出视图 49 2.8 秘诀:交换视图 50 2.9 秘诀:翻转视图 52 2.10 秘诀:将catransition应用于层 54 2.10.1 文档中未记录的动画类型 54 2.10.2 通用core animation调用 56 2.11 秘诀:滑动视图 57 2.12 秘诀:转换视图 59 2.13 小结 61 第3章 视图控制器 63 3.1 视图管理 63 3.1.1 核心类 63 3.1.2 专用类 64 3.1.3 创建uiviewcontroller 64 3.2 使用interface builder为uiview-controller构建视图 66 3.2.1 温度转换器示例 66 3.2.2 直接加载xib文件 73 3.3 导航控制器 73 3.3.1 设置导航控制器 74 3.3.2 推入和弹出视图控制器 74 3.3.3 导航项类 75 3.4 秘诀:构建简单的双项菜单 75 3.5 秘诀:添加分段控件 77 3.6 秘诀:在导航栏中添加uitoolbar 79 3.7 秘诀:在视图控制器之间导航 81 3.7.1 返回根 83 3.7.2 加载视图控制器数组 83 3.8 选项卡栏 83 3.9 小结 86 第4章 警告用户 87 4.1 通过警告直接与用户对话 87 4.1.1 记录结果 88 4.1.2 构建警告 88 4.1.3 显示警告 89 4.2 秘诀:创建多行按钮显示 90 4.3 秘诀:自动计时的无按钮警告 91 4.4 秘诀:请求用户的文本输入 92 4.5 秘诀:显示简单菜单 94 4.6 “请稍候”:向用户显示进度 95 4.7 秘诀:调用基本的文档中未记录的uiprogresshud 95 4.8 秘诀:使用uiactivity- indicatorview 97 4.9 秘诀:构建uiprogressview 98 4.10 秘诀:添加自定义、可轻击的覆盖层 101 4.11 秘诀:构建下滑式警告 104 4.12 秘诀:添加状态栏图像 107 4.13 添加应用程序标记 108 4.14 秘诀:简单的音频警告 110 4.15 小结 112 第5章 基本表格 113 5.1 uitableview和uitableview-controller简介 113 5.1.1 创建表格 113 5.1.2 uitableviewcontroller的作用 115 5.2 秘诀:创建简单的列表表格 115 5.2.1 数据源函数 116 5.2.2 重用单元格 116 5.2.3 字体表格示例 116 5.3 秘诀:创建基于表格的选择表 118 5.4 秘诀:将图像加载到表格单元中 122 5.5 秘诀:设置单元格的文本特性 123 5.6 秘诀:删除单元格选择 124 5.7 秘诀:创建复杂的单元格 125 5.8 秘诀:创建选中的选择 127 5.9 秘诀:删除单元格 128 5.9.1 创建和显示删除控件 130 5.9.2 关闭删除控件 ..131 5.9.3 处理删除请求 131 5.9.4 滑动单元格 131 5.9.5 添加单元格 131 5.10 秘诀:对单元格重新排序 131 5.11 秘诀:使用公开 132 5.12 小结 134 第6章 高级表格 135 6.1 秘诀:对表格选择进行分组 135 6.1.1 构建基于部分的数据源 139 6.1.2 添加部分标题 139 6.2 秘诀:构建带索引的部分表格 140 6.3 秘诀:定制单元格背景 141 6.4 秘诀:创建蓝白交替的单元格 145 6.5 秘诀:设置表格边框 146 6.6 秘诀:添加耦合的单元格控件 148 6.7 秘诀:构建多滚轮表格 150 6.8 秘诀:使用uidatepicker 153 6.9 秘诀:创建完全自定义的分组表格 155 6.10 小结 160 第7章 媒体 161 7.1 秘诀:按照文件类型浏览documents文件夹 161 7.2 加载和查看图像 163 7.3 秘诀:显示小图像 164 7.4 秘诀:使用uiwebveiw显示图像 167 7.5 秘诀:浏览图像库 169 7.6 秘诀:选择和定制相册中的图像 171 7.7 秘诀:使用iphone照相机拍照 174 7.8 处理iphone音频 175 7.9 秘诀:使用celestial播放音频 176 7.10 秘诀:使用媒体播放器实现音频和视频重放 178 7.11 秘诀:录制音频 179 7.12 读入文本数据 187 7.13 从备份文件还原媒体 187 7.14 小结 189 第8章 控件 190 8.1 秘诀:构建简单的按钮 190 8.1.1 uibutton类 191 8.1.2 构建自定义按钮 192 8.1.3 玻璃按钮(glass button) 194 8.2 秘诀:向按钮添加动画元素 194 8.3 秘诀:为按钮响应制作动画效果 196 8.4 秘诀:定制开关 197 8.5 秘诀:添加自定义滑块缩略图 200 8.6 秘诀:关闭uitextfield键盘 204 8.7 秘诀:关闭uitextview键盘 205 8.8 秘诀:向文本视图添加一个撤销(undo)按钮 207 8.9 秘诀:创建一个基于文本视图的html编辑器 209 8.10 秘诀:构建一个交互搜索栏 211 8.11 秘诀:添加标注(callout)视图 213 8.12 添加一个页面指示器控件 216 8.13 秘诀:定制工具栏 218 8.14 小结 221 第9章 人物、地点和事件 223 9.1 地址簿框架 223 9.1.1 address book ui 223 9.1.2 address book 224 9.2 秘诀:访问地址簿图像数据 225 9.3 秘诀:显示地址簿信息 227 9.4 秘诀:浏览地址簿 228 9.4.1 (只)浏览电子邮件地址 230 9.4.2 添加新的联系人 230 9.5 core location 231 9.6 秘诀:core location简介 232 9.7 秘诀:将地理编码转化为地址 235 9.8 秘诀:使用core location数据访问地图 238 9.9 秘诀:访问核心设备信息 240 9.10 秘诀:启用和禁用近程传感器 241 9.11 秘诀:使用加速度将方向定位到“向上” 241 9.12 秘诀:使用加速度移动屏幕上的对象 243 9.13 小结 246 第10章 连接服务 247 10.1 秘诀:添加自定义设置束 247 10.2 秘诀:使应用程序支持自定义url模式 251 10.3 秘诀:检查网络状态 253 10.3.1 测试网络状态 253 10.3.2 恢复本地ip地址 254 10.3.3 查询站点的ip地址 255 10.3.4 检查站点可用性 255 10.4 秘诀:与iphone数据库交互 257 10.5 秘诀:将xml转换为树 259 10.6 秘诀:存储和检索密钥链项 261 10.6.1 存储多个密钥链值 265 10.6.2 密钥链持久化 267 10.7 发送和接收文件 267 10.8 秘诀:构建一个简单的基于web的服务器 268 10.9 即时消息传送 272 10.10 小结 272 第11章 cover flow编程 274 11.1 uicoverflowlayer类 274 11.2 构建cover flow视图 276 11.3 构建cover flow视图控制器 278 11.3.1 cover flow数据源方法 279 11.3.2 cover flow委托方法 279 11.4 小结... 282

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值