第1章 iPhone SDK初探 1
1 应用程序剖析 1
1.1.1 Xcode揭密 3
1.2 安装iPhone SDK 5
1.2.1 开发所需资源 6
1.2.2 iPhone模拟器 6
1.2.3 下载并安装iPhone SDK 7
1.3 配备iPhone 8
1.4 构建并安装应用程序 10
1.4.1 模型-视图-控制器 11
1.4.2 应用程序模板 11
1.4.3 Xcode项目布局 12
1.4.4 原型 13
1.4.5 添加框架 14
1.4.6 设置活跃SDK 15
1.4.7 构建应用程序 16
1.4.8 安装应用程序 16
1.5 转换到Objective-C 16
1.5.1 消息机制 17
1.5.2 类和方法的声明 18
1.5.3 实现 19
1.5.4 属性 21
1.5.5 协议 22
1.5.6 类别 23
1.5.7 替位 24
1.5.8 其他资源 25
第2章 Interface Builder:Xcode中制作GUI的GUI 26
2.1 窗口、视图和视图控制器 27
2.2 现有模板 27
2.3 新建模板 28
2.4 用户界面元素 29
2.4.1 控制器 30
2.4.2 数据视图 30
2.4.3 输入和数据 31
2.4.4 窗口、视图和栏 31
2.5 查看器 31
2.6 设计UI 31
2.6.1 窗口 31
2.6.2 视图控制器 32
2.6.3 视图 32
2.6.4 创建视图间联系 33
2.6.5 在代码中添加联系 34
2.7 从项目中移除Interface Builder 35
第3章 介绍UI Kit 36
3.1 基本用户界面元素 37
3.2 窗口和视图 38
3.2.1 创建窗口和视图 39
3.2.2 显示视图 40
3.2.3 史上最无用的应用程序:HelloView 40
3.2.4 行为解释 42
3.2.5 从UIView派生 42
3.2.6 传统废柴程序:Hello World 44
3.2.7 行为解释 46
3.3 视图控制器 47
3.3.1 创建视图控制器 47
3.3.2 从Interface Builder载入视图 49
3.3.3 方向变换 49
3.3.4 弃置视图控制器 50
3.3.5 使用视图控制器的Hello World:ControllerDemo 50
3.3.6 行为解释 53
3.3.7 进一步学习 54
3.4 文本视图 54
3.4.1 创建文本视图 55
3.4.2 赋予内容 58
3.4.3 显示HTML 59
3.4.4 网页源码阅读器:SourceReader 60
3.4.5 行为解释 63
3.4.6 进一步学习 64
3.5 导航栏与控制器 64
3.5.1 创建导航控制器 64
3.5.2 导航控制器属性 65
3.5.3 添加分段控件 68
3.5.4 添加工具栏 69
3.5.5 分页导航练习:PageDemo 72
3.5.6 行为解释 76
3.5.7 进一步学习 77
3.6 转场动画 77
3.6.1 创建转场 78
3.6.2 附加转场 79
3.6.3 翻页转场:FlipDemo 80
3.6.4 行为解释 84
3.6.5 进一步学习 84
3.7 操作表单与警报 84
3.7.1 警报 85
3.7.2 操作表单 85
3.7.3 解除操作表单 87
3.7.4 世界末日(待批准):EndWorld 87
3.7.5 行为解释 91
3.7.6 进一步学习 91
3.8 表格视图与控制器 91
3.8.1 创建表格 92
3.8.2 表格单元 94
3.8.3 实现多选 98
3.8.4 编辑与扫动删除 98
3.8.5 重新载入表格 99
3.8.6 简单的文件浏览器:TableDemo 100
3.8.7 行为解释 105
3.8.8 进一步学习 106
3.9 操纵状态栏 106
3.9.1 隐藏状态栏 107
3.9.2 状态栏风格 107
3.9.3 状态栏方向 107
3.10 应用程序徽章 108
3.10.1 显示应用程序徽章 108
3.10.2 移除应用程序徽章 109
3.10.3 进一步学习 109
3.11 应用程序服务 109
3.11.1 挂起与复原 109
3.11.2 程序终止 110
3.12 调用Safari 110
3.13 发起电话呼叫 111
第4章 多点触摸事件与界面几何 112
4.1 界面几何结构体介绍 112
4.1.1 CGPoint 112
4.1.2 CGSize 113
4.1.3 CGRect 113
4.2 处理多点触摸事件 115
4.2.1 UITouch通知 115
4.2.2 UIEvent 116
4.2.3 事件处理 117
4.2.4 例子:点触计数器 118
4.2.5 例子:单击并拖曳 119
4.2.6 处理多点触摸 120
4.2.7 捏合检测:PinchMe 120
4.2.8 Tracking多点触摸图标跟踪:TouchDemo 122
4.2.9 行为解释 127
4.2.10 进一步学习 127
第5章 Quarz Core图层编程 128
5.1 了解图层 128
5.1.1 图层层次结构 129
5.1.2 尺寸与位置 130
5.1.3 排布与显示 130
5.1.4 绘制 131
5.1.5 变换 131
5.1.6 图层动画 132
5.1.7 图层变换 132
5.1.8 玩转图层:BounceDemo 134
5.1.9 行为解释 138
5.1.10 进一步学习 139
第6章 喧嚣:Audio Toolbox和AVFoundation 140
6.1 AVFoundation框架 141
6.1.1 音频播放器 141
6.1.2 播放器属性 142
6.1.3 播放声音 143
6.1.4 代理方法 143
6.1.5 仪表计数 144
6.2 构建一个VU表:AVMeter 144
6.2.1 行为解释 152
6.2.2 进一步学习 153
6.3 音频服务 153
6.3.1 行为解释 154
6.4 音频队列 154
6.4.1 音频队列的结构 155
6.4.2 供应音频输出 156
6.4.3 音频缓冲区 157
6.4.4 回调函数 158
6.4.5 音量控制 159
6.4.6 例子:PCM播放器 160
6.4.7 行为解释 164
6.4.8 进一步学习 164
6.5 录音 165
6.5.1 音频队列结构体 165
6.5.2 供应音频输入 167
6.5.3 音频缓冲区 168
6.5.4 回调函数 169
6.5.5 访问原始数据 170
6.5.6 写入文件 170
6.5.7 例子:录音机 171
6.5.8 行为解释 174
6.5.9 进一步学习 174
6.6 振动 175
第7章 CFNetwork网络编程 176
7.1 套接字编程基础 176
7.1.1 套接字类型 177
7.1.2 CFSocket 177
7.1.3 CFSocketContext 182
7.1.4 套接字流 183
7.1.5 CFSocket例子:笑话服务器 187
7.1.6 进一步学习 190
7.2 CFHTTP与CFFTP 190
7.2.1 CFHTTP 190
7.2.2 CFFTP 192
7.2.3 进一步学习 193
第8章 定位:Core Location 194
8.1 Core Location管理器 195
8.1.1 查询参数 195
8.1.2 提交查询 196
8.1.3 接收更新 197
8.1.4 完成查询 198
8.1.5 错误处理 198
8.1.6 土话Core Location:Where You At 199
8.1.7 行为解释 202
8.1.8 进一步学习 202
第9章 地址簿框架 203
9.1 访问地址簿 203
9.1.1 高层地址簿函数 204
9.1.2 查询地址簿 205
9.1.3 创建记录 205
9.1.4 操纵记录 206
9.1.5 多值属性 207
9.1.6 使用字典 210
9.1.7 图像数据 210
9.1.8 进一步学习 211
9.2 地址簿界面 211
9.2.1 联系人视图 211
9.2.2 联系人选取器 211
9.2.3 进一步学习 213
第10章 UI Kit进阶设计 214
10.1 通用控件 216
10.1.1 基类UIControl 216
10.1.2 分段控件 219
10.1.3 开关 222
10.1.4 滑块 224
10.1.5 文本字段控件 226
10.1.6 按钮 232
10.1.7 分页控件 234
10.1.8 进一步学习 236
10.2 偏好设置表格 236
10.2.1 创建偏好设置表格 236
10.2.2 显示偏好设置表格 241
10.2.3 偏好设置表格的例子:ShootStuffUp 241
10.2.4 行为解释 247
10.2.5 进一步学习 248
10.3 分段列表 248
10.3.1 创建分段列表 249
10.3.2 添加索引条 251
10.3.3 显示分段列表 251
10.3.4 一个更好的文件浏览器:TableDemo 251
10.3.5 行为解释 259
10.3.6 进一步学习 260
10.4 进度与活动指示器 260
10.4.1 小小转子:UIActivityIndicator View 260
10.4.2 嫌转子俗就用UIProgress View 261
10.4.3 网络活动指示器 262
10.4.4 进一步学习 262
10.5 图像 262
10.5.1 图像对象 263
10.5.2 玩转图像和图案:ImageFun 266
10.5.3 图像视图:UIImageView 269
10.5.4 图像选取器 270
10.6 键盘属性 271
10.6.1 键盘风格 272
10.6.2 键盘外观 273
10.6.3 回车键 273
10.6.4 自动大写 273
10.6.5 自动更正 274
10.6.6 安全文本输入 274
10.7 选取器 274
10.7.1 创建选取器 274
10.7.2 显示选取器 276
10.7.3 读取选取器 276
10.7.4 挑选你的鼻子:NosePicker 276
10.7.5 行为解释 281
10.7.6 进一步学习 282
10.8 时间/日期选取器 282
10.8.1 创建时间/日期选取器 282
10.8.2 显示日期选取器 284
10.8.3 读取日期 284
10.8.4 选取独立日:DatePicker 284
10.8.5 行为解释 288
10.8.6 进一步学习 288
10.9 标签栏 288
10.9.1 标签栏控制器 289
10.9.2 构建一个标签栏控制器 289
10.9.3 可定制按钮 291
10.9.4 导航 292
10.9.5 代理的动作 292
10.9.6 又一个教科书式的例子:TabDemo 293
10.9.7 行为解释 295
10.9.8 进一步学习 295
10.10 感应器与设备信息 296
10.10.1 读取设备方向 296
10.10.2 读取设备信息 297
10.10.3 读取加速计 297
10.10.4 近距离感应器 298
10.10.5 进一步学习 299
10.11 滚动视图 299
10.11.1 创建滚动视图 299
10.11.2 属性 300
10.11.3 代理方法 301
10.11.4 滚动中的气象地图:BigImage 302
10.11.5 行为解释 304
10.11.6 进一步学习 305
10.12 网页视图 305
10.12.1 创建网页视图 305
10.12.2 显示网页视图 306
10.12.3 加载内容 306
10.12.4 导航 306
10.12.5 代理方法 307
10.12.6 Google搜索工具:WebDemo 307
10.12.7 行为解释 311
10.12.8 进一步学习 311
第11章 应用程序设定 312
11.1 字典和属性列表 312
11.1.1 创建字典 312
11.1.2 管理关键字 312
11.1.3 写入属性列表 313
11.1.4 读取属性列表 313
11.1.5 进一步学习 313
11.2 偏好设置束 314
11.2.1 添加关键字 314
11.2.2 读取偏好设置束的值 321
11.2.3 进一步学习 321
第12章 Cover Flow 322
12.1 用SDK编写Cover Flow:CovertFlow 322
12.1.1 行为解释 330
12.1.2 进一步学习 331
第13章 页面翻转 332
13.1 页面翻转的例子:PageControl 333
13.1.1 行为解释 340
13.1.2 进一步学习 340
13.2 用于多个视图的PageScrollView 340
13.2.1 行为解释 346
第14章 媒体播放器框架 348
14.1 电影播放器控件 348
14.1.1 属性 349
14.1.2 开始和停止播放电影 349
14.1.3 通知 350
14.1.4 进一步学习 351