第1章 Swift简介 1
1.1 初识Swift 2
1.2 了解Playground 4
1.2.1 Playground的编辑器模式 5
1.2.2 时间轴简介 6
1.2.3 Quick Look所支持的类型 10
1.2.4 为什么要用Playground 10
1.2.5 Playground的一些限制 10
1.3 了解Xcode 11
1.3.1 使用Xcode创建iOS项目 11
1.3.2 Xcode的工具栏 14
1.3.3 导航区域 15
1.3.4 编辑区域 17
1.3.5 实用工具区域 18
1.4 使用代码编辑器 19
1.5 iOS模拟器 22
1.5.1 iOS模拟器的特性 22
1.5.2 模拟器中iOS系统的基本设置 24
1.5.3 在模拟器中安装和卸载应用程序 25
1.5.4 iOS模拟器的限制 25
第2章 搭建计算器的界面 26
2.1 为移动平台开发应用 26
2.2 了解故事板 29
2.2.1 创建用户界面工具Interface Builder 30
2.2.2 故事板 30
2.3 创建用户界面 36
2.3.1 设置界面的预览窗口 36
2.3.2 向视图添加界面元素 38
2.3.3 Interface Builder的布局工具 39
2.4 理解iOS 8的视图和窗口 41
2.4.1 视图概述 41
2.4.2 UIWindow类 41
2.4.3 视图的层次 41
2.4.4 视图的类型 43
2.5 与代码进行关联 43
2.5.1 要完成的效果 44
2.5.2 理解Outlet和Actions 44
2.5.3 使用快速检查器查看关联 49
第3章 设计模式和视图控制器 51
3.1 MVC设计模式简介 51
3.2 Calculator项目中的控制器 54
3.2.1 实现计算器运算符的相关代码 54
3.2.2 实现计算结果的相关代码 56
3.3 关于Application Delegate 57
3.4 了解视图控制器 59
3.4.1 视图控制器简介 59
3.4.2 不同类型的视图控制器 61
第4章 使用故事板组织和管理视图 64
4.1 创建购物应用程序 64
4.1.1 创建应用程序 64
4.1.2 创建Shopping的用户界面 66
4.1.3 创建数据模型 70
4.1.4 添加导航控制器 71
4.1.5 创建其他的视图控制器 73
4.1.6 在故事板中连接视图 77
4.2 调整数据模型 79
4.2.1 重建商品信息的数据模型 79
4.2.2 改变商品的购买状态 81
4.2.3 创建欲购买的商品 83
第5章 自定义表格视图 86
5.1 剖析表格视图 87
5.2 使用UITableViewController创建表格 89
5.2.1 创建超市的特价商品列表 89
5.2.2 创建特价商品的数据模型 91
5.2.3 通过data source传递数据 93
5.2.4 在IB中自定义单元格 94
5.3 表格视图中的选择与删除 99
5.3.1 删除表格中的单元格 99
5.3.2 单元格的选择和取消选择 101
5.4 委托 101
5.4.1 协议 102
5.4.2 协议方法 103
5.5 设置应用程序启动画面 103
5.5.1 直接设置启动画面 104
5.5.2 通过LaunchScreen.xib设置启动画面 105
第6章 自动布局 107
6.1 自动布局的概念 107
6.1.1 约束 109
6.1.2 约束的关系 109
6.1.3 创建约束 110
6.2 在IB中创建约束 110
6.2.1 为视图元素创建约束 111
6.2.2 通过预览查看实时效果 112
6.2.3 通过工具栏添加约束 113
6.2.4 改变约束的值 115
6.2.5 拖曳出约束 116
6.3 竖屏下的自动布局 117
6.3.1 对于约束的考虑 117
6.3.2 添加浏览特价商品详情的功能 118
6.3.3 为竖屏界面添加相关约束 120
6.3.4 显示相关商品信息 123
6.4 横屏下的完美布局 125
6.4.1 Size Class 125
6.4.2 使用Size Class 126
第7章 使用集合视图 130
7.1 集合视图简介 130
7.2 使用集合视图显示数据 132
7.2.1 在故事板中添加新的场景 132
7.2.2 为集合视图提供数据 133
7.2.3 创建自定义的集合视图单元格 136
7.3 自定义集合视图的布局 138
7.4 标签栏控制器 139
7.4.1 标签栏及其中的标签 139
7.4.2 在故事板中添加标签栏控制器 140
7.4.3 设置标签栏配置条目 143
第8章 获取远程数据 145
8.1 使用故事板创建用户界面 145
8.2 使用NSURLSession获取数据 148
8.2.1 生成URL连接 150
8.2.2 使用异步方式解决等待问题 152
8.3 构建自定义API控制器 154
8.4 添加影片搜索功能 157
8.5 设计IMDb的用户界面 160
8.5.1 为场景添加虚化背景效果 161
8.5.2 通过类的扩展增加String的功能 163
8.5.3 自定义label字体和图像视图 165
第9章 在程序中获取照片 168
9.1 框架简介 169
9.2 搭建项目的用户界面 170
9.2.1 搭建用户基本界面 170
9.2.2 导航栏控制器的Navigation Item 173
9.2.3 为Photos Gallery项目建立关联 174
9.3 完成Photos Gallery项目的逻辑代码 177
9.3.1 使用PHAssetCollection管理照片集 177
9.3.2 获取照片集中的照片 181
9.3.3 完善PhotoViewController控制器 184
9.3.4 完成PhotoViewController的交互 186
9.3.5 使用UIImagePickerController多方式获取照片 189
第10章 使用Facebook和Twitter整合社交 192
10.1 使用Accounts Framework 192
10.1.1 访问Twitter账号和账号的属性 193
10.1.2 访问Facebook账号和账号的属性 199
10.2 使用Social Framework发布内容 203
10.2.1 创建Stream控制器 203
10.2.2 使用Tweet Composer视图发布消息到Twitter 207
10.2.3 发送消息到Facebook 209
10.3 使用Social.framework进行API调用 210
10.3.1 使用SLRequest检索Twitter流 210
10.3.2 获取Facebook信息 213
第11章 调试你的应用程序 217
11.1 为什么调试很重要 217
11.2 编译时候的问题 218
11.2.1 错误 219
11.2.2 警告 219
11.3 运行时候的问题 220
11.3.1 断点 220
11.3.2 使用调试器 221
11.4 帮助文档 222
11.5 与帮助文档有关的技巧 223
11.6 通过帮助文档了解应用程序图标 224
第12章 文件和文件目录管理 227
12.1 iOS文件系统简介 227
12.2 在磁盘中搜索常用目录 229
12.3 读写文件的操作 231
12.3.1 将文件写入到目录中 231
12.3.2 读取文件内容 233
12.4 在磁盘上创建目录 234
12.5 遍历目录和文件 235
12.5.1 简单地遍历目录和文件 235
12.5.2 遍历并获取需要的信息 236
12.6 删除文件和目录 239