第1章 第一个简单的iOS应用 1
1.1 创建Xcode项目 2
1.2 模型-视图-控制器 5
1.3 设计Quiz 6
1.4 Interface Builder 7
1.5 创建界面 8
1.6 创建模型对象 21
1.7 编译完成的应用 23
1.8 应用图标 24
1.9 启动画面 26
第2章 Swift语言 27
2.1 Swift的数据类型 27
2.2 使用标准类型 28
2.3 可选 35
2.4 循环和字符串补全 37
2.5 枚举和Switch 39
2.6 查阅Apple的Swift文档 40
第3章 视图与视图层次结构 41
3.1 视图基础 42
3.2 视图层次结构 42
3.3 创建新项目 44
3.4 视图及Frame 45
3.5 自动布局系统 55
3.6 初级练习:更多自动布局练习 64
第4章 文本输入与委托 65
4.1 文本编辑 65
4.2 实现温度转换 73
4.3 委托 76
4.3 初级练习:禁止输入字母 79
第5章 视图控制器 81
5.1 视图控制器的视图 82
5.2 设置初始视图控制器 82
5.3 UITabBarController 85
5.4 加载以及展示视图 90
5.5 与视图控制器及其视图交互 92
5.6 中级练习:夜间模式 93
5.7 深入学习:高清显示 93
第6章 用代码实现视图 95
6.1 使用代码创建视图 96
6.2 代码实现约束 97
6.3 代码实现事件 104
6.4 初级练习:再添加一个Tab 106
6.5 中级练习:显示用户位置 106
6.6 高级练习:显示地图大头针 106
6.7 深入学习:NSAutoresizingMaskLayoutConstraint 106
第7章 本地化 109
7.1 国际化 110
7.2 本地化 120
7.3 初级练习:另外一种本地化 126
7.4 深入学习:NSBundle在国际化中扮演的角色 126
7.5 深入学习:导入以及导出XLIFF 128
第8章 控制动画 129
8.1 基础动画 130
8.2 另一个标签 132
8.3 动画完成 135
8.4 对约束作动画 135
8.5 时间方法 139
8.6 初级练习:spring动画 141
8.7 中级练习:Layout Guides 141
第9章 UITableView与UITableViewController 143
9.1 编写Homepwner应用 144
9.2 UITableViewController 145
9.3 创建Item类 147
9.4 UITableView数据源 149
9.5 UITableViewCells 153
9.6 内容缩进 158
9.7 初级练习:多个分组 159
9.8 中级练习:固定的行 160
9.9 高级练习:自定义UITableView 160
第10章 编辑UITableView 161
10.1 编辑模式 161
10.2 添加行 166
10.3 删除行 168
10.4 移动行 169
10.5 显示提示窗口 170
10.6 设计模式 173
10.7 初级练习:修改删除按钮的标题 174
10.8 中级练习:禁止调整顺序 174
10.9 高级练习:真正地禁止调整顺序 174
第11章 创建UITableViewCell子类 175
11.1 创建ItemCell 176
11.2 添加并关联ItemCell的属性 178
11.3 使用ItemCell 179
11.4 动态计算高度 180
11.5 动态类型 181
11.6 初级练习:UITableViewCell的颜色 184
第12章 UIStackView 185
12.1 使用UIStackView 186
12.2 Segues 194
12.3 绑定内容 195
12.4 传递数据 200
12.5 初级练习:更多的UIStackView 201
第13章 UINavigationController 203
13.1 UINavigationController 204
13.2 使用UINavigationController导航 209
13.3 视图的出现和消失 210
13.4 隐藏键盘 211
13.5 UINavigationBar 215
13.6 初级练习:显示数字键盘 220
13.7 中级练习:自定义UITextField 220
13.8 高级练习:添加更多UIViewController 220
第14章 相机 221
14.1 通过UIImageView对象显示图片 222
14.2 通过UIImagePickerController拍摄照片 226
14.3 创建ImageStore 231
14.4 让UIViewController可以访问ImageStore 232
14.5 创建并使用键 233
14.6 使用ImageStore 235
14.7 初级练习:编辑图片 236
14.8 中级练习:删除图片 237
14.9 高级练习:Camera Overlay 237
14.10 深入学习:导航实现文件 237
第15章 保存、读取与应用状态 241
15.1 固化 242
15.2 应用沙盒 245
15.3 NSKeyedArchiver与NSKeyedUnarchiver 248
15.4 应用状态与状态切换 251
15.5 通过NSData将数据写入文件 254
15.6 错误处理 257
15.7 初级练习:PNG 259
15.8 深入学习:应用状态切换 259
15.9 深入学习:文件系统读/写 261
15.10 深入学习:应用程序包 263
第16章 Size Classes 265
16.1 定制Size Classes 266
16.2 初级练习:垂直排列UITextField和UILabel 272
第17章 触摸事件和UIResponder 273
17.1 触摸事件 274
17.2 创建TouchTracker应用 275
17.3 创建Line结构体 276
17.4 创建DrawView 278
17.5 使用DrawView画图 279
17.6 处理触摸事件并创建线条对象 280
17.7 @IBInspectable 285
17.8 中级练习:颜色 287
17.9 高级练习:圆圈 287
17.10 深入学习:响应对象链 287
17.11 深入学习:UIControl 289
第18章 UIGestureRecognizer与UIMenuController 291
18.1 UIGestureRecognizer子类 292
18.2 使用UITapGestureRecognizer检测点击 292
18.3 多个UIGestureRecognizer 294
18.4 UIMenuController 297
18.5 更多UIGestureRecognizer 299
18.6 深入学习UIGestureRecognizer 304
18.7 中级练习:神奇的线条 305
18.8 高级练习:速度和大小 305
18.9 铂金挑战:颜色 305
18.10 深入学习:UIMenuController与UIResponderStandardEditActions 306
第19章 网络服务 307
19.1 开始Photorama应用 308
19.2 创建URL 309
19.3 发送请求 314
19.4 Photo模型 317
19.5 JSON数据 318
19.6 下载并显示图片数据 326
19.7 主线程 329
19.8 初级练习:打印返回信息 331
19.9 深入学习:HTTP 331
第20章 UICollectionView 333
20.1 显示网格 334
20.2 UICollection数据源 336
20.3 自定义布局 339
20.4 创建自定义的UICollectionViewCell 341
20.5 下载图片数据 345
20.6 查看照片 349
20.7 中级练习:改变Item的尺寸 352
20.8 高级练习:自定义布局 352
第21章 Core Data 353
21.1 对象图 353
21.2 实体 354
21.3 创建Core Data Stack 358
21.4 更新数据 361
21.5 更新数据源 364
21.6 在硬盘上保存图片 367
21.7 初级练习:照片查看次数 368
第22章 Core Data关系 369
22.1 关系 370
22.2 在界面中添加标签 372
22.3 父子NSManagedObjectContext 382
22.4 中级练习:收藏 384
第23章 后记 385
23.1 接下来做什么 385
23.2 关注我们 386
索引 387