内容简介
第1章 为开发准备好系统和iOS设备
1.1 欢迎进入iOS平台
1.1.1 iOS设备
1.1.2 显示屏和图形
1.1.3 应用程序资源约束
1.1.4 连接性
1.1.5 输入和反馈
1.2 成为iOS开发人员
1.2.1 Apple开发人员计划
1.2.2 加入付费的开发人员计划
1.2.3 安装Xcode
1.3 运行iOS应用
1.3.1 什么是开发供应配置文件
1.3.2 配置用于开发的设备
1.3.3 启动应用
1.4 开发技术概述
1.4.1 Apple开发工具
1.4.2 Swift
1.4.3 CoCoaTouch
1.4.4 模型-视图-控制器
1.5 进一步探索
1.6 小结
1.7 问与答
1.8 作业
1.8.1 测验
1.8.2 答案
1.8.3 练习
第2章 Xcode和iOS模拟器简介
2.1 使用Xcode
2.1.1 创建和管理项目
2.1.2 编辑和导航代码
2.1.3 生成应用程序
2.1.4 管理项目属性
2.1.5 设置支持的设备朝向
2.1.6 应用程序图标、启动图像和启动屏幕
2.2 使用iOS模拟器
2.2.1 启动应用程序
2.2.2 模拟多点触摸事件
2.2.3 旋转模拟的设备
2.2.4 模拟其他情况
2.2.5 添加其他要模拟的设备
2.3 进一步探索
2.4 小结
2.5 问与答
2.6 作业
2.6.1 测验
2.6.2 答案
2.6.3 练习
第3章 探索Swift和iOS试验场
3.1 面向对象编程和Swift
3.2 面向对象编程术语
3.3 探索Swift文件结构
3.3.1 类文件
3.3.2 自动生成的结构
3.4 Swift编程基础
3.4.1 声明变量和常量
3.4.2 使用方法
3.4.3 表达式和决策
3.5 内存管理和自动引用计数
3.6 iOS试验场简介
3.6.1 新建试验场
3.6.2 使用试验场
3.6.3 生成并查看输出
3.7 进一步探索
3.8 小结
3.9 问与答
3.10 作业
3.10.1 测验
3.10.2 答案
3.10.3 练习
第4章 CocoaTouch内幕
4.1 Cocoa Touch是什么
4.1.1 冷静面对大量的功能
4.1.2 少年老成
4.2 探索iOS技术层
4.2.1 CocoaTouch层
4.2.2 多媒体层
4.2.3 核心服务层
4.2.4 核心OS层
4.3 跟踪iOS应用程序的生命周期
4.4 Cocoa基础
4.4.1 核心应用程序类
4.4.2 数据类型类
4.4.3 界面类
4.5 使用Xcode探索iOS框架
4.5.1 Xcode文档
4.5.2 快速帮助
4.6 进一步探索
4.7 小结
4.8 问与答
4.9 作业
4.9.1 测验
4.9.2 答案
4.9.3 练习
第5章 探索Xcode Interface Builder
5.1 了解Interface Builder
5.1.1 IB采用的方法
5.1.2 剖析IB故事板
5.2 创建用户界面
5.2.1 对象库
5.2.2 将对象加入到视图中
5.2.3 使用IB编辑工具
5.2.4 自动布局系统
5.3 定制界面外观
5.3.1 使用属性检查器
5.3.2 设置辅助功能属性
5.3.3 预览界面
5.4 连接到代码
5.4.1 打开项目
5.4.2 实现概述
5.4.3 输出口和操作
5.4.4 对象身份
5.5 进一步探索
5.6 小结
5.7 问与答
5.8 作业
5.8.1 测验
5.8.2 答案
5.8.3 练习
第6章 模型-视图-控制器应用程序设计
6.1 了解设计模式MVC
6.1.1 制作意大利面条式代码
6.1.2 使用MVC将应用程序设计结构化
6.2 Xcode如何实现MVC
6.2.1 视图
6.2.2 视图控制器
6.2.3 数据模型
6.3 使用模板Single View Application
6.3.1 实现概述
6.3.2 创建项目
6.3.3 规划变量和连接
6.3.4 设计界面
6.3.5 创建并连接输出口和操作
6.3.6 实现应用程序逻辑
6.3.7 生成应用程序
6.4 进一步探索
6.5 小结
6.6 问与答
6.7 作业
6.7.1 测验
6.7.2 答案
6.7.3 练习
第7章 使用文本、键盘和按钮
7.1 基本用户输入和输出
7.1.1 按钮
7.1.2 文本框和文本视图
7.1.3 标签
7.2 使用文本框、文本视图和按钮
7.2.1 实现概述
7.2.2 创建项目
7.2.3 使用切割技术制作按钮模板
7.2.4 设计界面
7.2.5 创建并连接输出口和操作
7.2.6 隐藏键盘
7.2.7 实现应用程序逻辑
7.2.8 生成应用程序
7.3 进一步探索
7.4 小结
7.5 问与答
7.6 作业
7.6.1 测验
7.6.2 答案
7.6.3 练习
第8章 处理图像、动画、滑块和步进控件
8.1 用户输入和输出
8.1.1 滑块
8.1.2 步进控件
8.1.3 图像视图
8.1.4 视觉效果视图
8.2 创建并管理图像动画、滑块和步进控件
8.2.1 实现概述
8.2.2 创建项目
8.2.3 设计界面
8.2.4 创建并连接到输出口和操作
8.2.5 实现应用程序逻辑
8.2.6 生成应用程序
8.3 进一步探索
8.4 小结
8.5 问与答
8.6 作业
8.6.1 测验
8.6.2 答案
8.6.3 练习
第9章 使用高级界面对象和视图
9.1 再谈用户输入和输出
9.1.1 开关
9.1.2 分段控件
9.1.3 Web视图
9.1.4 可滚动的视图
9.1.5 堆叠视图
9.2 使用开关、分段控件和 Web视图
9.2.1 实现概述
9.2.2 创建项目
9.2.3 设计界面
9.2.4 创建并连接输出口和操作
9.2.5 实现应用程序逻辑
9.2.6 生成应用程序
9.3 使用可滚动视图和堆叠视图
9.3.1 实现概述
9.3.2 创建项目
9.3.3 设计界面
9.3.4 创建并连接输出口和操作
9.3.5 实现应用程序逻辑
9.3.6 生成应用程序
9.4 进一步探索
9.5 小结
9.6 问与答
9.7 作业
9.7.1 测验
9.7.2 答案
9.7.3 练习
第10章 引起用户注意
10.1 提醒用户
10.1.1 提醒控制器
10.1.2 系统声音服务
10.2 探索提醒用户的方法
10.2.1 实现概述
10.2.2 创建项目
10.2.3 设计界面
10.2.4 创建并连接输出口和操作
10.2.5 实现提醒
10.2.6 实现操作表
10.2.7 实现提醒音和震动
10.3 进一步探索
10.4 小结
10.5 问与答
10.6 作业
10.6.1 测验
10.6.2 答案
10.6.3 练习
第11章 实现多场景和弹出框
11.1 多场景故事板简介
11.1.1 术语
11.1.2 创建多场景项目
11.1.3 添加提供支持的视图控制器子类
11.1.4 创建切换
11.1.5 配置模态切换
11.1.6 配置弹出切换
11.1.7 手工控制模态切换
11.1.8 使用出口和回退切换
11.1.9 以编程方式创建切换
11.1.10 弹出切换的独特之处
11.1.11 在场景之间传递数据
11.2 使用切换
11.2.1 实现概述
11.2.2 创建项目
11.2.3 设计界面
11.2.4 创建模态切换
11.2.5 回退到初始场景
11.2.6 创建并连接输出口和操作
11.2.7 实现应用程序逻辑
11.2.8 生成应用程序
11.3 弹出框、通用应用程序和iPhone
11.3.1 配置弹出切换
11.3.2 改为通用应用程序
11.4 进一步探索
11.5 小结
11.6 问与答
11.7 作业
11.7.1 测验
11.7.2 答案
11.7.3 练习
第12章 使用工具栏和选择器做出选择
12.1 了解工具栏
12.2 探索选择器
12.2.1 日期选择器
12.2.2 选择器视图
12.3 使用日期选择器
12.3.1 实现概述
12.3.2 创建项目
12.3.3 设计界面
12.3.4 创建切换
12.3.5 创建并连接输出口和操作
12.3.6 实现日期计算逻辑
12.3.7 实现场景切换逻辑
12.3.8 生成应用程序
12.4 实现自定义选择器
12.4.1 实现概述
12.4.2 创建项目
12.4.3 设计界面
12.4.4 创建切换
12.4.5 创建并连接输出口和操作
12.4.6 实现自定义选择器视图
12.4.7 实现场景切换逻辑
12.4.8 生成应用程序
12.5 进一步探索
12.6 小结
12.7 问与答
12.8 作业
12.8.1 测验
12.8.2 答案
12.8.3 练习
第13章 使用导航控制器和选项卡栏控制器
13.1 高级视图控制器
13.2 探索导航控制器
13.2.1 导航栏、导航项和栏按钮项
13.2.2 在故事板中使用导航控制器
13.2.3 在导航场景之间共享数据
13.3 了解选项卡栏控制器
13.3.1 选项卡栏和选项卡栏项
13.3.2 在故事板中使用选项卡栏控制器
13.3.3 在选项卡栏控制器管理的场景之间共享数据
13.4 使用导航控制器
13.4.1 实现概述
13.4.2 创建项目
13.4.3 创建显示切换
13.4.4 设计界面
13.4.5 创建并连接输出口和操作
13.4.6 实现应用程序逻辑
13.4.7 生成应用程序
13.5 使用选项卡栏控制器
13.5.1 实现概述
13.5.2 创建项目
13.5.3 创建选项卡栏关系
13.5.4 设计界面
13.5.5 创建并连接输出口和操作
13.5.6 实现应用程序逻辑
13.5.7 生成应用程序
13.6 进一步探索
13.7 小结
13.8 问与答
13.9 作业
13.9.1 测验
13.9.2 答案
13.9.3 练习
第14章 使用表视图和分割视图控制器导航数据
14.1 了解表视图
14.1.1 表视图的外观
14.1.2 表单元格
14.1.3 添加表视图
14.2 探索分割视图控制器
14.2.1 实现分割视图控制器
14.2.2 模板Master-Detail Application
14.3 一个简单的表视图应用程序
14.3.1 实现概述
14.3.2 创建项目
14.3.3 设计界面
14.3.4 连接输出口delegate和dataSource
14.3.5 实现应用程序逻辑
14.3.6 生成应用程序
14.4 创建基于主-从视图的应用程序
14.4.1 实现概述
14.4.2 创建项目
14.4.3 调整界面
14.4.4 实现应用程序数据源
14.4.5 实现主视图控制器
14.4.6 实现细节视图控制器
14.4.7 生成应用程序
14.5 进一步探索
14.6 小结
14.7 问与答
14.8 作业
14.8.1 测验
14.8.2 答案
14.8.3 练习
第15章 读写应用程序数据
15.1 iOS应用程序和数据存储
15.2 数据存储方式
15.2.1 用户默认设置
15.2.2 设置束
15.2.3 直接访问文件系统
15.3 创建隐式首选项
15.3.1 实现概述
15.3.2 创建项目
15.3.3 创建界面
15.3.4 创建并连接输出口和操作
15.3.5 实现应用程序逻辑
15.3.6 生成应用程序
15.4 实现系统设置
15.4.1 实现概述
15.4.2 创建项目
15.4.3 设计界面
15.4.4 创建并连接输出口
15.4.5 创建设置束
15.4.6 实现应用程序逻辑
15.4.7 生成应用程序
15.5 实现文件系统存储
15.5.1 实现概述
15.5.2 创建项目
15.5.3 设计界面
15.5.4 创建并连接输出口和操作
15.5.5 实现应用程序逻辑
15.6 进一步探索
15.7 小结
15.8 问与答
15.9 作业
15.9.1 测验
15.9.2 答案
15.9.3 练习
第16章 创建自适应用户界面
16.1 自适应界面
16.1.1 启用界面旋转
16.1.2 设计可旋转和调整大小的界面
16.2 使用自动布局
16.2.1 自动布局的语言和工具
16.2.2 在约束对象中导航
16.2.3 手工定义约束
16.2.4 示例1:居中约束
16.2.5 示例2:增大控件
16.2.6 示例3:统一调整大小
16.3 以编程方式定义界面
16.3.1 实现概述
16.3.2 创建项目
16.3.3 界面编程
16.3.4 生成应用程序
16.4 进一步探索
16.5 小结
16.6 问与答
16.7 作业
16.7.1 测验
16.7.2 答案
16.7.3 练习
第17章 使用复杂的触摸和手势
17.1 多点触摸手势识别
17.2 添加手势识别器
17.3 3D Touch预览和打开
17.4 使用手势识别器
17.4.1 实现概述
17.4.2 创建项目
17.4.3 设计界面
17.4.4 给视图添加手势识别器
17.4.5 创建并连接输出口和操作
17.4.6 实现应用程序逻辑
17.4.7 生成应用程序
17.5 实现3DTouch手势
17.5.1 实现概述
17.5.2 修改ModalEditor
17.5.3 修改FlowerDetail
17.6 进一步探索
17.7 小结
17.8 问与答
17.9 作业
17.9.1 测验
17.9.2 答案
17.9.3 练习
第18章 检测朝向和移动
18.1 理解运动硬件
18.1.1 加速计
18.1.2 陀螺仪
18.2 访问朝向和运动数据
18.2.1 通过UIDevice请求朝向通知
18.2.2 使用Core Motion读取加速度、旋转速度和姿态
18.3 检测朝向
18.3.1 实现概述
18.3.2 创建项目
18.3.3 设计界面
18.3.4 创建并连接输出口
18.3.5 实现应用程序逻辑
18.3.6 生成应用程序
18.4 检测加速、倾斜和旋转
18.4.1 实现概述
18.4.2 创建项目
18.4.3 设计界面
18.4.4 创建并连接输出口和操作
18.4.5 实现应用程序逻辑
18.4.6 生成应用程序
18.5 进一步探索
18.6 小结
18.7 问与答
18.8 作业
18.8.1 测验
18.8.2 答案
18.8.3 练习
第19章 使用多媒体
19.1 探索多媒体
19.1.1 Media Player框架
19.1.2 AVFoundation和AVKit框架
19.1.3 图像选择器
19.1.4 Core Image框架
19.2 创建用于练习使用多媒体的应用程序
19.2.1 实现概述
19.2.2 创建项目
19.2.3 设计界面
19.2.4 使用容器视图嵌入AVPlayerViewController
19.2.5 创建并连接输出口和操作
19.2.6 实现视频播放器
19.2.7 实现音频录制和播放
19.2.8 使用照片库和相机
19.2.9 实现Core Image滤镜
19.2.10 访问并播放音乐库
19.3 进一步探索
19.4 小结
19.5 问与答
19.6 作业
19.6.1 测验
19.6.2 答案
19.6.3 练习
第20章 与其他iOS服务交互
20.1 集成iOS服务
20.1.1 通讯录
20.1.2 电子邮件
20.1.3 在社交网站上发表信息
20.1.4 访问Web浏览器Safari
20.1.5 地图功能
20.2 使用通讯录、电子邮件、社交网络、Safari和地图
20.2.1 实现概述
20.2.2 创建项目
20.2.3 设计界面
20.2.4 创建并连接输出口和操作
20.2.5 实现通讯录逻辑
20.2.6 实现地图逻辑
20.2.7 实现电子邮件逻辑
20.2.8 实现社交网络逻辑
20.2.9 实现Safari视图控制器
20.2.10 将状态栏设置为白色(可选)
20.2.11 生成应用程序
20.3 进一步探索
20.4 小结
20.5 问与答
20.6 作业
20.6.1 测验
20.6.2 答案
20.6.3 练习
第21章 实现定位服务
21.1 理解Core Location
21.1.1 获取位置
21.1.2 获取航向
21.2 创建支持定位的应用程序
21.2.1 实现概述
21.2.2 创建项目
21.2.3 设计视图
21.2.4 创建并连接输出口
21.2.5 实现应用程序逻辑
21.2.6 生成应用程序
21.3 理解磁性指南针
21.3.1 实现概述
21.3.2 创建项目
21.3.3 修改用户界面
21.3.4 创建并连接输出口
21.3.5 修改应用程序逻辑
21.3.6 生成应用程序
21.4 进一步探索
21.5 小结
21.6 问与答
21.7 作业
21.7.1 测验
21.7.2 答案
21.7.3 练习
第22章 创建支持后台处理的应用程序
22.1 理解iOS后台处理
22.1.1 后台处理类型
22.1.2 支持后台处理的应用程序的生命周期
22.2 禁用后台处理
22.3 处理后台挂起
22.4 实现本地通知
22.4.1 请求用户允许使用通知
22.4.2 常用的通知属性
22.4.3 创建和调度通知
22.5 使用任务特定的后台处理
22.5.1 修改应用程序Cupertion以支持在后台播放音频
22.5.2 使用声音指示前往库珀蒂诺的方向
22.5.3 添加后台模式
22.6 完成长时间运行的后台任务
22.6.1 实现概述
22.6.2 创建项目
22.6.3 设计界面
22.6.4 创建并连接输出口
22.6.5 实现应用程序逻辑
22.6.6 启用后台任务处理
22.6.7 生成应用程序
22.7 执行后台获取
22.7.1 实现概述
22.7.2 创建项目
22.7.3 设计界面
22.7.4 创建并连接输出口
22.7.5 实现应用程序逻辑
22.7.6 添加后台获取模式
22.7.7 生成应用程序
22.8 添加3DTouch快速操作菜单
22.8.1 添加快速操作图标
22.8.2 定义快速操作
22.8.3 实现快速操作逻辑
22.8.4 生成应用程序
22.9 进一步探索
22.10 小结
22.11 问与答
22.12 作业
22.12.1 测验
22.12.2 答案
22.12.3 练习
第23章 创建通用应用程序
23.1 开发通用应用程序
23.1.1 将项目配置为通用的
23.1.2 通用应用程序开发工具和技巧
23.2 尺寸类
23.2.1 使用尺寸类工具
23.2.2 使用尺寸类创建故事板
23.3 进一步探索
23.4 小结
23.5 问与答
23.6 作业
23.6.1 测验
23.6.2 答案
23.6.3 练习
第24章 应用程序跟踪、监视和调试
24.1 使用NSLog提供即时反馈
24.1.1 使用NSLog
24.1.2 查看NSLog输出
24.2 使用Xcode调试器
24.2.1 设置断点及单步执行代码
24.2.2 使用调试导航器
24.3 进一步探索
24.4 小结
24.5 问与答
24.6 作业
24.6.1 测验
24.6.2 答案
24.6.3 练习