第1章 准备开始 1
1.1本书结构 1
1.2本书中的约定 2
1.2.1实例代码约定 2
1.2.2图示约定 3
1.2.3图中手势 4
1.2.4方法命名约定 5
1.2.5构造器命名约定 7
第2章 UIKit与Quartz 2D绘图技术 9
2.1绘制视图 9
2.1.1视图绘制周期 9
2.1.2实例:填充矩形 10
2.1.3填充与描边 13
2.1.4绘制图像和文本 13
2.2 Quartz图形上下文 15
2.3 Quartz路径 17
2.4 Quartz坐标变换 20
2.4.1坐标系 20
2.4.2 2D图形的基本变换 23
2.4.3 CTM变换矩阵 24
2.4.4仿射变换 29
本章小结 29
第3章 图像处理 30
3.1使用图像 31
3.1.1创建图像 31
3.1.2从设备图片库选取或从照相机抓取 35
3.2 Core Image框架 40
3.3滤镜 42
3.3.1使用滤镜 42
3.3.2实例:旧色调和高斯模糊滤镜 43
3.4人脸识别 46
3.4.1人脸识别开发 46
3.4.2实例:是猩猩还是小女孩 47
本章小结 50
第4章 动画技术 51
4.1视图动画 51
4.1.1动画块 51
4.1.2动画生命周期事件 53
4.1.3过渡动画 55
4.2 iOS自定义视图过渡动画 58
4.2.1自定义过渡动画 58
4.2.2树形结构导航自定义过渡动画 60
4.2.3模态导航自定义过渡动画 61
4.2.4实例:使用HUAnimator自定义过渡动画框架 62
4.3 UIKit力学 67
4.3.1 UIKit力学基本框架 68
4.3.2力学行为特性 69
4.3.3实例:UIKit力学 71
4.4运动效果 80
4.5 Core Animation框架 82
4.5.1图层 82
4.5.2隐式动画 83
4.5.3显式动画 85
4.5.4关键帧动画 87
4.5.5使用路径 88
本章小结 90
第5章 音频 91
5.l音频文件简介 91
5.2音频API简介 92
5.3 AVFoundation框架实现音频录制与播放 93
5.3.1音频播放 93
5.3.2音频录制 97
5.3.3语音合成 103
5.4使用System Sound API 105
5.4.1播放系统声音 106
5.4.2发出警告提醒 109
5.4.3振动 110
本章小结 111
第6章 视频 112
6.1视频文件简介 112
6.2播放视频 113
6.2.1使用MediaPlayer框架 113
6.2.2使用AVFoundation框架 119
6.3录制视频 126
6.3.1使用UIImagePickerController 126
6.3.2使用AVFoundation框架 130
6.4编辑视频 135
本章小结 138
第7章 流媒体技术 139
7.1网络多媒体技术 140
7.1.1渐进式下载 140
7.1.2实时流媒体 141
7.2渐进式下载开发 141
7.3实时流媒体开发 142
7.3.1媒体文件的分割与处理 143
7.3.2搭建HLS流媒体服务器 145
7.3.3使用本地技术开发客户端 146
7.3.4使用Hybrid技术开发客户端 147
本章小结 149
第8章AirPlay技术 150
8.1 AirPlay技术简介 150
8.1.1支持AirPlay的设备 152
8.1.2多媒体文件支持 152
8.2 AirPlay开发 153
8.2.1 MPMoviePlayerController 153
8.2.2 AVPlayer 155
8.2.3 UIWebView 157
本章小结 158
第9章 访问iPod媒体库 159
9.1访问iPod媒体库相关API 160
9.2访问与控制iPod媒体库 161
9.2.1控制iPod媒体库播放 161
9.2.2查看媒体信息 165
9.2.3通知 166
9.3搜索iPod媒体库 170
9.4 iPod媒体库选择器 174
本章小结 176
第10章 51CTO学院视频流媒体服务器与iPad客户端敏捷开发实战 177
10.1应用分析与设计 177
10.1.1应用简介 177
10.1.2需求分析 177
10.1.3原型设计 179
10.1.4架构设计 180
10.1.5数据库设计 182
10.1.6网络拓扑图 182
10.2 iOS敏捷开发 183
10.2.1敏捷开发宣言 183
10.2.2 iOS是否可以敏捷开发 184
10.2.3 iOS敏捷开发最佳实践 184
10.3任务1:环境搭建 186
10.3.1任务1.1: iPad客户端环境搭建 187
10.3.2任务1.2: Apache HTTP Server搭建 187
10.3.3任务1.3: HLS流媒体服务器搭建 189
10.3.4任务1.4: MySQL数据库服务器搭建 190
10.3.5任务1.5: phpMyAdmin管理工具的配置 193
10.4任务2:信息系统层开发 195
10.4.1任务2.1:创建数据库对象 195
10.4.2任务2.2:导入测试数据 196
10.5任务3:业务逻辑层开发 199
10.5.1任务3.1:业务逻辑类 199
10.5.2任务3.2:服务器端辅助对象Skeleton 203
10.6任务4:表示层开发 205
10.6.1任务4.1:客户端辅助对象Stub 205
10.6.2任务4.2:根据原型设计初步设计iPad故事板 209
10.6.3任务4.3:首页模块UI设计 213
10.6.4任务4.4:首页视图控制器代码编写 219
10.6.5任务4.5:首页到详细页的过渡 220
10.6.6任务4.6:详细模块UI设计 223
10.6.7任务4.6.1:主题颜色带 224
10.6.8任务4.6.2:课程类别2列表 224
10.6.9任务4.6.3:课程内容 228
10.6.10任务4.7:详细视图控制器代码编写 230
本章小结 237