第1章 iOS 9开发概述 1
1.1 iOS 9新特性 1
1.1.1 Siri语音助手智能化 1
1.1.2新增News新闻聚合应用 1
1.1.3 ApplePay支持购物Wallet取代Passbook 1
1.1.4地图引入Transit通勤路线功能 2
1.1.5备忘录进入核查清单组件 2
1.1.6键盘加入Shortcut Bar 2
1.1.7 iPad引入双屏模式,支持QuickType键盘 3
1.2构建开发环境——Xcode 7.0 3
1.2.1安装Xcode 7.0 3
1.2.2绑定苹果开发者账号 4
1.2.3更新文件和组件 5
1.2.4帮助文档 7
1.3编写第一个iOS 9应用 8
1.3.1创建项目 8
1.3.2编译、连接、运行 10
1.3.3 iOS模拟器介绍 10
1.3.4编辑界面 14
1.3.5编写代码 18
1.3.6定制应用程序图标 20
1.4小结 22
第2章 认识全新的Xcode 7.0 23
2.1 Xcode 7.0的新特性 23
2.1.1 UI测试 23
2.1.2免真机调试 24
2.1.3 Debug 24
2.1.4 iOS 9界面适配利器——UIStackView 24
2.2解剖Xcode 7.0界面 24
2.2.1导航窗口 24
2.2.2工具窗口 25
2.2.3编辑窗口 27
2.2.4目标窗口 27
2.3 Xcode 7.0项目结构 28
2.4调试程序 29
2.5小结 31
第3章 Swift基础语法 32
3.1常量和变量 32
3.1.1常量 32
3.1.2变量 35
3.2数据类型 35
3.2.1整数类型 36
3.2.2浮点类型 37
3.2.3字符类型 38
3.2.4布尔类型 39
3.2.5可选类型 39
3.2.6类型别名 40
3.3字面值 40
3.4 Swift特有字面值以及数据类型——元组 40
3.5运算符 41
3.5.1元的介绍 41
3.5.2赋值运算符 41
3.5.3一元加运算符 42
3.5.4一元减运算符 42
3.5.5算术运算符 43
3.5.6自增、自减运算符 44
3.5.7比较运算符 45
3.5.8逻辑运算符 46
3.5.9位运算符 46
3.5.10复合运算符 47
3.5.11求字节运算符 48
3.5.12强制解析运算符 49
3.5.13区间运算符 50
3.5.14溢出运算符 51
3.6类型转换 51
3.6.1整数的转换 52
3.6.2整数与浮点数的转换 52
3.7字符串 52
3.8集合类型 53
3.8.1数组 54
3.8.2字典 55
3.9程序控制结构 57
3.9.1顺序结构 57
3.9.2选择结构 58
3.9.3循环结构 62
3.9.4跳转语句 65
3.9.5标签语句 67
3.10函数 68
3.10.1函数的介绍 68
3.10.2无参函数的使用 69
3.10.3有参函数的使用 70
3.10.4函数的参数的注意事项 70
3.10.5函数的返回值 74
3.10.6函数类型 75
3.10.7函数的嵌套 78
3.11闭包 80
3.11.1闭包表达式 80
3.11.2 Trailing闭包 83
3.11.3捕获值 84
3.12小结 85
第4章 Swift高级语法 86
4.1枚举 86
4.1.1定义枚举 86
4.1.2定义枚举成员 87
4.1.3实例化枚举的对象 88
4.1.4枚举成员与switch语句的匹配 88
4.1.5访问枚举中成员的原始值 89
4.1.6相关值 91
4.2类 91
4.2.1创建类 92
4.2.2实例化对象 92
4.2.3属性 92
4.2.4方法 97
4.2.5下标脚本 99
4.2.6可选链接 102
4.3继承 104
4.3.1继承的实现 104
4.3.2重写 106
4.3.3禁止重写 111
4.3.4类型检测 111
4.4结构 115
4.4.1定义结构 115
4.4.2实例化结构对象 115
4.4.3在结构中定义内容 115
4.5构造方法和析构方法 119
4.5.1值类型的构造器 119
4.5.2类的构造器 122
4.5.3可失败构造器 127
4.5.4析构方法 128
4.6扩展和协议 129
4.6.1扩展 129
4.6.2协议 132
4.6.3可选协议 137
4.6.4使用协议类型 138
4.6.5协议的继承 140
4.6.6协议的组合 141
4.6.7检查协议的一致性 141
4.6.8委托 143
4.7运算符重载 145
4.7.1算数运算符重载 145
4.7.2前置运算符和后置运算符重载 146
4.7.3复合运算符重载 147
4.7.4比较运算符重载 147
4.7.5自定义运算符 148
4.8泛型 152
4.8.1泛型函数 152
4.8.2泛型类型 153
4.8.3具有多个类型参数的泛型 155
4.8.4类型约束 156
4.8.5关联类型 157
4.9错误处理 161
4.9.1抛出错误 161
4.9.2捕获错误和处理错误 163
4.10小结 163
第5章 自定义视图和视图控制器 164
5.1视图库介绍 164
5.2自定义视图的创建 165
5.2.1静态创建自定义视图 165
5.2.2动态创建自定义视图 167
5.3视图控制器 169
5.3.1创建视图控制器 169
5.3.2定义初始视图 172
5.4视图的实现 173
5.4.1切换视图 173
5.4.2旋转视图 176
5.5小结 180
第6章 文字显示视图 181
6.1标签控件Lable 181
6.1.1创建标签 181
6.1.2定制标签 183
6.2文本框控件 185
6.2.1创建文本框 186
6.2.2定制文本框 187
6.2.3键盘的显示 188
6.2.4设置键盘的显示类型 190
6.2.5关闭键盘 192
6.2.6文本框的应用 197
6.3文本视图 200
6.3.1创建文本视图 200
6.3.2定制文本视图 202
6.3.3文本视图中键盘的退出 203
6.3.4文本视图的应用——阅读浏览器 207
6.4小结 210
第7章 图形图像 211
7.1图像视图 211
7.1.1创建图像视图 211
7.1.2显示图像 213
7.2定制图像视图 216
7.2.1显示模式 217
7.2.2改变位置 218
7.2.3改变大小 223
7.2.4旋转 224
7.2.5缩放 226
7.3图像视图的应用——图片浏览器 227
7.4绘制图形术语简介 230
7.4.1图形上下文 230
7.4.2图形上下文的分类 230
7.4.3 Quartz2D定义的数据类型 231
7.4.4获取当前的图形上下文 231
7.4.5使用Quartz2D绘图的步骤 232
7.5绘制路径 232
7.5.1绘制线段 232
7.5.2绘制矩形 236
7.5.3路径函数总结 237
7.5.4为图形添加特效 238
7.6绘制位图 243
7.6.1绘制单个位图 243
7.6.2绘制多个位图 244
7.7绘制文字 245
7.7.1文字设置 246
7.7.2设置转换矩阵 246
7.7.3填充字体 246
7.7.4设置绘制模式 247
7.8小结 250
第8章 网页操作 251
8.1创建网页视图 251
8.2加载内容 252
8.2.1加载网页内容 253
8.2.2加载HTML代码 254
8.3定制网页视图 256
8.3.1自动识别网页内容 256
8.3.2自动缩放 257
8.4添加导航 259
8.4.1导航动作 259
8.4.2加载时常用方法 262
8.5网页视图的应用——网页浏览器 263
8.6小结 270
第9章 表视图 271
9.1创建表视图 271
9.2内容填充 273
9.2.1填充内容的步骤 273
9.2.2填充字符串 274
9.2.3填充图片 276
9.2.4添加页眉页脚 277
9.2.5添加索引 278
9.3设置表单元 279
9.3.1设置显示风格 280
9.3.2设置标记 281
9.3.3设置行高 284
9.4响应表视图 286
9.4.1选择行 286
9.4.2删除行 288
9.4.3添加行 290
9.4.4移动行 293
9.4.5缩进 295
9.5创建分组表 296
9.6填充分组表 298
9.6.1填充Grouped风格的分组表 299
9.6.2填充Plain风格的分组表 300
9.7表视图的实现 303
9.8小结 306
第10章 导航控制器和标签栏控制器 307
10.1导航控制器 307
10.1.1导航控制器的组成 307
10.1.2导航控制器的创建 308
10.1.3改变导航控制器的关联视图 309
10.1.4实现导航 310
10.1.5添加标题 311
10.1.6设置导航栏颜色 313
10.1.7添加左右按钮 315
10.1.8设置返回按钮 319
10.2标签栏控制器 320
10.2.1标签栏控制器的创建 320
10.2.2设置标签栏控制器 324
10.3导航控制器和标签栏控制器应用——电话簿 332
10.4小结 338
第11章 提醒处理 339
11.1警告视图 339
11.1.1创建警告视图 339
11.1.2显示警告视图 340
11.1.3警告视图的设置 341
11.1.4响应警告视图 344
11.2动作表单 348
11.2.1动作表单的创建 348
11.2.2显示动作表单 349
11.2.3响应动作表单 350
11.3小结 353
第12章 选择操作 354
12.1日期选择器 354
12.1.1日期选择器的创建 354
12.1.2定制日期选择器 356
12.1.3日期选择器应用——生日管理器 360
12.2自定义选择器 365
12.2.1自定义选择器的创建 365
12.2.2定制自定义选择器 366
12.2.3自定义选择器应用——头像更换 368
12.3小结 373
第13章 定位服务与地图 374
13.1定位服务 374
13.1.1获取位置数据 374
13.1.2管理与提供位置服务 375
13.1.3位置方向 379
13.2创建地图 379
13.2.1静态创建地图 379
13.2.2动态创建地图 380
13.3定制地图 381
13.3.1设置显示模式 382
13.3.2显示当前的位置 385
13.3.3指定位置 386
13.3.4添加标记 388
13.3.5在一定范围内显示指定位置 390
13.3.6获取地图的缩放级别 391
13.3.7标注 393
13.3.8将位置转换为地址 395
13.4地图的应用——地图浏览器 399
13.5小结 405
第14章 访问内置的应用程序 406
14.1地址簿 406
14.1.1访问地址簿 406
14.1.2添加联系人 408
14.1.3显示个人信息 412
14.1.4将第三方联系人信息添加到地址簿 414
14.2电子邮件 416
14.2.1访问系统电子邮件 416
14.2.2发送系统电子邮件 418
14.2.3 SMS短信的访问以及发送 424
14.3日历 426
14.3.1单个事件界面 426
14.3.2添加或编辑日历事件界面 430
14.4小结 433
第15章 多媒体 434
15.1照片库 434
15.1.1操作照片库 434
15.1.2访问照片库 438
15.1.3定制照片 438
15.1.4使用相机 441
15.1.5照片库的应用——背景选择 444
15.2音频 448
15.2.1系统声音 448
15.2.2音频播放 449
15.2.3录音 453
15.2.4访问音乐库 456
15.2.5音频的应用——MP3播放器 458
15.3视频 463
15.4小结 465
第16章 动画 466
16.1 UIView动画 466
16.1.1创建动画块 466
16.1.2修改动画块 468
16.1.3过渡动画 470
16.2 CATransition动画 474
16.2.1 CATransition的实现动画 474
16.2.2公开动画效果 475
16.2.3非公开动画效果 476
16.3 NSTimer动画 479
16.3.1 NSTimer的创建 479
16.3.2平移 480
16.3.3旋转 481
16.3.4缩放 483
16.4小结 485
第17章 触摸与手势 486
17.1触摸 486
17.1.1触摸阶段 486
17.1.2触摸方法 487
17.2手势 489
17.2.1轻拍 489
17.2.2捏 493
17.2.3滑动 495
17.2.4旋转 497
17.2.5移动 499
17.2.6长按 499
17.2.7自定义手势 502
17.3.小结 506