第1章 iOS开发入门 1
1.1 iOS系统介绍 2
1.1.1 iOS的发展历程 2
1.1.2 iOS 8是一个革命性的版本 2
1.2 加入iOS开发团队 4
1.3 搭建开发环境 6
1.3.1 Xcode介绍 7
1.3.2 iOS SDK介绍 8
1.3.3 下载并安装Xcode 10
1.4 创建第一个iOS 8项目 15
1.5 iOS的常用开发框架 18
1.5.1 Foundation框架简介 18
1.5.2 Cocoa框架简介 20
第2章 Objective-C语言基础 21
2.1 Objective-C语言基础 22
2.1.1 TIOBE编程语言社区排行榜 22
2.1.2 Objective-C介绍 22
2.1.3 iOS选择Objective-C的原因 23
2.1.4 Objective-C的优点和缺点 23
2.2 第一段Objective-C程序 24
2.2.1 使用Xcode编辑代码 24
2.2.2 注释 27
2.2.3 #import指令 28
2.2.4 主函数 29
2.2.5 显示变量的值 31
2.3 数据类型和常量 32
2.3.1 int类型 33
2.3.2 float类型 34
2.3.3 double类型 35
2.3.4 char类型 36
2.3.5 字符常量 37
2.3.6 id类型 38
2.3.7 限定词 40
2.4 字符串 41
2.5 表达式 42
2.5.1 算数表达式 42
2.5.2 常量表达式 46
2.5.3 条件运算符 46
2.5.4 sizeof运算符 47
2.5.5 关系运算符 48
2.5.6 强制类型转换运算符 48
2.5.7 运算符的优先级 49
第3章 Swift语言基础 51
3.1 Swift基础 52
3.1.1 Swift之父 52
3.1.2 Swift的优点 53
3.2 数据类型 54
3.2.1 int类型 54
3.2.2 float类型 54
3.2.3 double类型 55
3.2.4 char类型 55
3.2.5 字符常量 55
3.3 常量和变量 56
3.3.1 常量 56
3.3.2 变量 56
3.4 字符串和字符 57
3.4.1 字符串字面量 58
3.4.2 初始化空字符串 58
3.4.3 字符串可变性 59
3.4.4 值类型字符串 59
3.4.5 计算字符数量 60
3.4.6 连接字符串和字符 60
3.4.7 字符串插值 60
3.4.8 比较字符串 61
3.4.9 Unicode字符 62
3.5 流程控制 64
3.5.1 for循环 65
3.5.2 while循环 67
3.6 条件语句 68
3.6.1 if语句 68
3.6.2 switch语句 69
3.7 函数 70
3.7.1 函数的声明与调用 70
3.7.2 函数的参数和返回值 71
3.7.3 函数参数名 73
第4章 Cocoa Touch框架 77
4.1 Cocoa Touch基础 78
4.1.1 Cocoa Touch概述 78
4.1.2 Cocoa Touch中的框架 78
4.2 iPhone的技术层 79
4.2.1 Cocoa Touch层 79
4.2.2 多媒体层 85
4.2.3 核心服务层 86
4.2.4 核心OS层 87
4.3 Cocoa Touch中的框架 87
4.3.1 Core Animation(图形处理)框架 88
4.3.2 Core Audio(音频处理)框架 88
4.3.3 Core Data(数据处理)框架 89
4.4 Cocoa中的类 90
4.4.1 核心类 90
4.4.2 数据类型类 93
4.4.3 UI界面类 97
4.5 国际化 100
4.6 使用Xcode学习iOS框架 101
4.6.1 使用Xcode文档 101
4.6.2 快速帮助 103
第5章 Storyboarding(故事板) 105
5.1 故事板的推出背景 106
5.2 故事板的文档大纲 107
5.3 文档大纲的区域对象 108
5.4 创建一个界面 109
5.4.1 对象库 109
5.4.2 将对象加入到视图中 110
5.4.3 使用IB布局工具 111
5.5 定制界面外观 115
5.5.1 使用属性检查器 115
5.5.2 设置辅助功能属性 116
5.5.3 测试界面 117
5.6 使用模板Single View Application 118
5.6.1 创建项目 118
5.6.2 规划变量和连接 123
5.6.3 设计界面 125
5.6.4 创建并连接输出口和操作 127
5.6.5 实现应用程序逻辑 129
5.6.6 生成应用程序 131
第6章 基本控件的应用 133
6.1 文本框控件 134
6.1.1 文本框基础 134
6.1.2 在屏幕中显示一个文本输入框 134
6.1.3 使用Swift实现UITextField控件 135
6.2 文本视图控件 141
6.2.1 文本视图基础 141
6.2.2 在屏幕中换行显示文本 142
6.2.3 基于Swift使用UITextView控件 143
6.3 标签(UILabel) 145
6.3.1 标签(UILabel)的属性 146
6.3.2 使用UILabel显示一段 文本 146
6.4 按钮控件 150
6.4.1 按钮基础 150
6.4.2 按下按钮后触发一个事件 151
6.4.3 基于Swift在界面中实现按钮的交互 152
6.5 滑块控件 156
6.5.1 使用滑块控件的基本方法 157
6.5.2 实现各种各样的滑块 158
6.5.3 使用Swift实现UISlider控件效果 166
6.6 图像视图控件(UIImageView) 168
6.6.1 UIImageView的常用操作 168
6.6.2 在屏幕中显示图像 173
6.6.3 基于Swift使用UIImageView控件 173
6.7 UISwitch控件 176
6.7.1 开关控件基础 176
6.7.2 改变UISwitch的文本和颜色 176
6.7.3 基于Swift控制是否显示密码明文 179
6.8 分段控件 182
6.8.1 分段控件的属性和方法 183
6.8.2 使用UISegmentedControl控件 185
6.8.3 基于Swift使用UISegmentedControl控件 187
第7章 视图处理 191
7.1 可滚动的视图 192
7.1.1 UIScrollView的基本用法 192
7.1.2 使用可滚动视图控件 194
7.1.3 基于Swift使用UIScrollView控件 198
7.2 翻页视图处理 200
7.2.1 PageControl控件基础 200
7.2.2 基于Swift使用UIPageControl控件 201
7.3 提醒视图(UIAlertView) 207
7.3.1 UIAlertView基础 207
7.3.2 实现一个自定义提醒对话框 211
7.3.3 基于Swift使用UIAlertView控件 214
7.4 选择器视图(UIPickerView) 219
7.4.1 选择器视图基础 220
7.4.2 实现两个UIPickerView控件间的数据依赖 222
7.5 表视图基础 226
7.5.1 表视图的外观 226
7.5.2 表单元格 227
7.5.3 添加表视图 227
7.5.4 UITableView详解 231
7.5.5 拆分表视图 234
7.5.6 基于Swift在表视图中使用其他控件 237
7.6 活动指示器(UIActivityIndicatorView) 240
7.6.1 活动指示器基础 240
7.6.2 实现一个播放器的活动指示器 240
7.7 进度条(UIProgressView) 243
7.7.1 进度条基础 243
7.7.2 实现一个蓝色进度条效果 243
7.7.3 使用Swift实现自定义进度条效果 244
第8章 界面控制器的处理 251
8.1 UNiew基础 252
8.1.1 UIView的结构 252
8.1.2 视图架构 254
8.1.3 视图层次和子视图的管理 255
8.1.4 视图绘制周期 256
8.1.5 设置UIView的位置和尺寸 256
8.2 导航控制器(UIViewController)简介 258
8.2.1 UIViewController基础 258
8.2.2 实现不同界面之间的跳转处理 258
8.2.3 基于Swift使用UNiewController控件 260
8.3 使用UINavigationController 265
8.3.1 导航栏、导航项和栏按钮项 266
8.3.2 UINavigationController详解 266
8.3.3 在故事板中使用导航控制器 268
8.3.4 实现不同视图的切换 270
8.4 选项卡栏控制器 274
8.4.1 选项卡栏和选项卡栏项 275
8.4.2 在选项卡栏控制器管理的场景之间共享数据 277
8.4.3 UITabBarController使用详解 277
8.4.4 实现不同场景的切换 280
8.5 综合使用界面视图控件 284
第9章 实现多场景和弹出框 293
9.1 多场景故事板基础 294
9.2 创建多场景项目 295
9.2.1 在故事板中添加场景 295
9.2.2 给场景命名 297
9.2.3 添加提供支持的视图控制器子类 297
9.2.4 使用#import和@class共享属性和方法 300
9.3 使用第二个视图来编辑第一个视图中的信息 301
第10章 屏幕旋转处理 307
10.1 启用界面旋转 308
10.2 设计可旋转和可调整大小的界面 308
10.2.1 自动旋转和自动调整大小 309
10.2.2 调整框架 309
10.2.3 切换视图 309
10.2.4 使用Interface Builder创建可旋转和调整大小的界面 309
10.2.5 在旋转时调整控件方向 313
第11章 声音服务 319
11.1 访问声音服务 320
11.1.1 声音服务基础 320
11.1.2 播放声音文件 321
11.2 提醒和震动 326
11.2.1 播放提醒音 326
11.2.2 使用iOS的提醒功能 326
11.3 Media Player框架 337
11.3.1 Media Player框架中的类 337
11.3.2 使用Media Player播放视频 341
11.4 AV Foundation框架 344
11.4.1 准备工作 344
11.4.2 使用AV音频播放器 344
11.4.3 使用AV录音机 345
11.5 图像选择器(UIImagePickerController) 346
11.5.1 使用图像选择器 346
11.5.2 基于Swift语言实现ImagePicker功能 347
11.6 基于Swift实现一个音乐播放器 360
第12章 定位处理 371
12.1 Core Location框架 372
12.1.1 Core Location基础 372
12.1.2 使用流程 372
12.2 获取位置 375
12.2.1 位置管理器委托 375
12.2.2 处理定位错误 376
12.2.3 位置精度和更新过滤器 377
12.2.4 获取航向 378
12.3 地图功能 379
12.3.1 Map Kit基础 379
12.3.2 为地图添加标注 380
12.4 在屏幕中实现一个定位系统 381
12.4.1 设计界面 382
12.4.2 具体编码 383
12.5 使用谷歌地图 386
12.5.1 添加打开地图功能 387
12.5.2 升级视图控制器 389
12.5.3 添加自定义地图标注对象 391
第13章 与互联网接轨 393
13.1 UIWebView控件 394
13.1.1 UIWebView基础 394
13.1.2 显示指定的网页 394
13.1.3 控制屏幕中的网页 396
13.1.4 加载显示PDF、Word和JPEG图片 398
13.1.5 在网页中加载HTML代码 400
13.1.6 触摸网页数据 401
13.2 实现一个简单的网页浏览器 405
13.3 基于Swift使用UIWebView控件 409
第14章 与硬件之间的操作 415
14.1 加速计和陀螺仪 416
14.1.1 加速计基础 416
14.1.2 陀螺仪 421
14.1.3 检测倾斜和旋转 421
14.2 访问朝向和运动数据 427
14.2.1 两种方法 427
14.2.2 检测朝向演练 429
14.3 基于Swift使用Motion传感器 432
第15章 开发通用的项目程序 435
15.1 开发通用的应用程序 436
15.1.1 在iOS 6中开发通用的应用程序 436
15.1.2 在iOS 7、 iOS 8中开发通用 应用程序 437
15.1.3 图标文件 447
15.1.4 启动图像 448
15.2 使用模板创建通用的应用程序 448
15.2.1 创建项目 448
15.2.2 设计界面 449
15.2.3 创建并连接输出口 450
15.2.4 实现应用程序逻辑 450
15.3 使用视图控制器 451
15.3.1 创建项目 452
15.3.2 设计界面 453
15.3.3 创建并连接输出口 453
15.3.4 实现应用程序逻辑 454
15.3.5 生成应用程序 454
15.4 使用多个目标 455
15.4.1 将iPhone目标转换iPad目标 455
15.4.2 将iPad目标转换为iPhone目标 456
第16章 游戏开发 457
16.1 Sprite Kit框架基础 458
16.1.1 Sprite Kit的优点和缺点 458
16.1.2 Sprite Kit、 Cocos2D、 Cocos2D-X和Unity的选择 458
16.1.3 开发一个Sprite Kit游戏程序 458
16.2 基于Swift开发一个四子棋游戏 470
第17章 读写应用程序的数据 481
17.1 iOS应用程序和数据存储 482
17.2 用户默认设置 482
17.3 设置束 484
17.4 iCloud存储 485
17.5 使用SQLite 3存储和读取数据 486
17.6 核心数据 491
17.6.1 Core Data基础 491
17.6.2 Core Data的基本架构 493
17.6.3 托管对象和托管对象模型 496
17.6.4 在iOS中使用Core Data 497
17.7 互联网数据 501
17.7.1 XML和JSON 502
17.7.2 使用JSON获取网站中的照片信息 505
第18章 HealthKit开发详解 509
18.1 HealthKit基础 510
18.1.1 HealthKit介绍 510
18.1.2 市面中的HealthKit应用现状 510
18.1.3 接入HealthKit的好处 511
18.2 HealthKit开发基础 512
18.2.1 开发要求 512
18.2.2 HealthKit开发思路 512
18.3 实战演练——检测一天消耗掉的能量 513
第19章 HomeKit开发详解 529
19.1 HomeKit基础 530
19.1.1 HomeKit对格局的作用 530
19.1.2 市场策略和发展机遇 531
19.1.3 HomeKit硬件标准 531
19.2 HomeKit开发基础 532
19.2.1 HomeKit应用程序的层次模型 532
19.2.2 HomeKit程序架构模式 533
19.2.3 HomeKit中的类 535
19.3 实战演练——实现一个HomeKit控制程序 536
第20章 WatchKit开发详解 555
20.1 Apple Watch介绍 556
20.2 WatchKit开发基础 557
20.2.1 搭建WatchKit开发环境 558
20.2.2 WatchKit架构 561
20.2.3 WatchKit布局 563
20.2.4 Glances和Notifications 563
20.2.5 Watch App的生命周期 564
20.3 开发Apple Watch应用程序 565
20.3.1 创建Watch应用 566
20.3.2 创建Glance界面 566
20.3.3 自定义通知界面 567
20.3.4 配置Xcode项目 567
20.4 实战演练——实现AppleWatch界面布局 570
20.5 实战演练——显示地图、网页和单元格 574
第21章 多功能音乐盒系统 577
21.1 系统介绍 578
21.1.1 功能介绍 578
21.1.2 模块划分 578
21.2 系统主界面 579
21.3 音乐库 581
21.3.1 音乐库主界面 582
21.3.2 歌曲表视图控制器 584
21.3.3 开关控制器 589
21.3.4 专辑模块 592
21.3.5 歌曲信息模块 597
21.3.6 正在播放模块 599
21.4 在线搜索 604
21.5 MV播放 614
21.5.1 主界面 614
21.5.2 视图刷新 621
21.5.3 MV信息 622
21.5.4 MV搜索 623
21.5.5 Hot MV 624