第1章 开篇综述 1
1.1本书结构 1
1.2本书中的约定 2
1.2.1实例代码约定 2
1.2.2图示的约定 3
1.2.3图中手势 5
第2章 UIKit与Quartz 2D绘图技术 6
2.1绘制视图 6
2.1.1视图绘制周期 6
2.1.2绘制实例:填充矩形 7
2.1.3填充与描边 10
2.1.4绘制图像和文本 11
2.2 Quartz图形上下文 13
2.3 Quartz路径 15
2.4 Quartz坐标变换 18
2.4.1坐标系 18
2.4.2 2D图形的基本变换 21
2.4.3 CTM变换矩阵 22
2.4.4仿射(affine)变换 27
本章小结 28
第3章 图像处理 29
3.1使用图像 30
3.1.1创建图像 30
3.1.2从设备图片库选取或从照相机抓取 36
3.2 Core Image框架 41
3.3滤镜 44
3.3.1使用滤镜 44
3.3.2实例:旧色调和高斯模糊滤镜 45
3.4人脸识别 48
3.4.1人脸识别开发 48
3.4.2实例:是猩猩还是小女孩 49
本章小结 52
第4章 动画技术 53
4.1视图动画 53
4.1.1动画块 53
4.1.2动画生命周期事件 56
4.1.3过渡动画 59
4.2 iOS 7自定义视图过渡动画 63
4.2.1树形结构导航自定义过渡动画 63
4.2.2模态导航自定义过渡动画 66
4.2.3实例:使用HUAnimator自定义过渡动画框架 67
4.3 iOS 7UIKit力学(Dynamics) 71
4.3.1 UIKit力学基本框架 71
4.3.2力学行为特性 72
4.3.3实例:UIKit力学 75
4.4 iOS 7运动效果(MotioNEffects) 84
4.5 Core Animation框架 87
4.5.1图层 87
4.5.2隐式动画 88
4.5.3显式动画 90
4.5.4关键帧动画 93
4.5.5使用路径 94
本章小结 97
第5章 音频 98
5.1音频文件 98
5.2音频API 99
5.3 AVFoundation框架实现音频录制与播放 100
5.3.1音频播放 100
5.3.2音频录制 104
5.3.3语音合成 112
5.4使用System Sound API 114
5.4.1播放系统声音 115
5.4.2发出警告提醒 118
5.4.3振动 119
5.5使用OpenAL API 119
5.5.1 OpenAL构成 120
5.5.2 OpenAL与3D空间中的声音 120
5.5.3 OpenAL API 120
5.5.4 OpenAL应用开发流程 121
5.5.5实例:使用OpenAL播放音效 122
本章小结 127
第6章 视频 128
6.1视频文件 128
6.2播放视频 129
6.2.1使用MediaPlayer框架 129
6.2.2使用AVFoundation框架 137
6.3录制视频 144
6.3.1使用UIImagePickerController 144
6.3.2使用AVFoundation框架 148
6.4编辑视频 153
本章小结 156
第7章 流媒体技术 157
7.1网络多媒体技术 158
7.1.1渐进式下载 158
7.1.2实时流媒体 158
7.2渐进式下载开发 159
7.3实时流媒体开发 160
7.3.1媒体文件的分割与处理 161
7.3.2搭建HLS流媒体服务器 163
7.3.3使用本地技术开发客户端 164
7.3.4使用Hybrid技术开发客户端 165
本章小结 168
第8章 AirPlay与Apple TV 169
8.1AirPlay技术 170
8.1.1支持AirPlay的设备 171
8.1.2多媒体文件支持 171
8.2 AirPlay开发 172
8.2.1 MPMoviePlayerController 172
8.2.2 AVPlayer 174
8.2.3 UIWebView 178
本章小结 179
第9章 访问iPod媒体库 180
9.1访问iPod媒体库相关API 181
9.2访问与控制iPod媒体库 182
9.2.1控制iPod媒体库播放 182
9.2.2查看媒体信息 186
9.2.3通知 187
9.3搜索iPod媒体库 191
9.4 iPod媒体库选择器 195
本章小结 197
第10章 51CTO学院视频流媒体服务器与iPad客户端敏捷开发实战 198
10.1应用分析与设计 198
10.1.1应用概述 198
10.1.2需求分析 199
10.1.3原型设计 200
10.1.4架构设计 200
10.1.5数据库设计 204
10.1.6网络拓扑图 204
10.2 iOS敏捷开发 205
10.2.1敏捷开发宣言 205
10.2.2 iOS是否可以敏捷开发 206
10.2.3 iOS敏捷开发最佳实践 206
10.3任务1:环境搭建 208
10.3.1迭代1.1: iPad客户端环境搭建 208
10.3.2迭代1.2: Apache HTTP Server搭建 209
10.3.3迭代1.3:搭建HLS流媒体服务器 211
10.3.4迭代1.4: MySQL数据库服务器搭建 212
10.3.5迭代1.5: phpMyAdmin管理工具的配置 215
10.4任务2:信息系统层开发 217
10.4.1迭代2.1:创建数据库对象 217
10.4.2迭代2.2:导入测试数据 218
10.5任务3:业务逻辑层开发 221
10.5.1迭代3.1:业务逻辑类 221
10.5.2迭代3.2:服务器端辅助对象Skeleton 225
10.6任务4:表示层开发 227
10.6.1迭代4.1:客户端辅助对象Stub 227
10.6.2迭代4.2:根据原型设计初步设计iPad故事板 231
10.6.3迭代4.3:首页模块U1设计 233
10.6.4迭代4.4:首页视图控制器代码编写 239
10.6.5迭代4.5:首页到详细页的过渡 241
10.6.6迭代4.6:详细模块UI设计 244
10.6.7迭代4.6.1:主题颜色带 246
10.6.8迭代4.6.2:课程类别2列表 247
10.6.9迭代4.6.3:课程内容 249
10.6.10迭代4.7:详细视图控制器代码编写 251
本章小结 258