第1章 欢迎来到iPhone世界
1.1 关于本书
1.2 必要条件
1.2.1 开发者的选择
1.2.2 必备知识
1.3 编写iOS应用程序有何不同
1.3.1 只有一个应用程序正在运行
1.3.2 只有一个窗口
1.3.3 受限访问
1.3.4 有限的响应时间
1.3.5 有限的屏幕大小
1.3.6 有限的系统资源
1.3.7 不支持垃圾收集
1.3.8 新功能
1.3.9 与众不同的方法
1.4 本书内容
1.5 本次更新的内容
1.6 准备开始吧
第2章 创建基本项目
2.1 在Xcode中设置项目
2.2 Interface Builder简介
2.2.1 nib文件的构成
2.2.2 在视图中添加标签
2.2.3 改变属性
2.3 美化iPhone应用程序
2.4 小结
第3章 处理基本交互
3.1 MVC范型
3.2 创建项目
3.3 创建视图控制器
3.3.1 输出口
3.3.2 操作
3.3.3 将操作和输出口添加到视图控制器
3.3.4 将操作和输出口添加到实现文件
3.4 使用应用程序委托
3.5 编辑MainWindow.xib
3.6 编辑Button_FunViewController.xib
3.6.1 在Interface Builder中创建视图
3.6.2 连接所有元素
3.6.3 测试
3.7 小结
第4章 更丰富的用户界面
4.1 满是控件的屏幕
4.2 活动和被动控件
4.3 创建应用程序
4.4 实现图像视图和文本字段
4.4.1 确定输出口
4.4.2 确定操作
4.4.3 添加图像视图
4.4.4 添加文本字段
4.4.5 设置第二个文本字段的属性
4.4.6 连接输出口
4.5 关闭键盘
4.5.1 完成输入后关闭键盘
4.5.2 通过触摸背景关闭键盘
4.6 实现滑块和标签
4.6.1 确定输出口和操作
4.6.2 添加输出口和操作
4.6.3 添加滑块和标签
4.6.4 连接操作和输出口
4.7 实现开关、按钮和分段控件
4.7.1 添加输出口和操作
4.7.2 添加开关、按钮和分段控件
4.7.3 连接开关输出口和操作
4.7.4 添加按钮
4.8 实现操作表和警报
4.8.1 遵从操作表委托方法
4.8.2 显示操作表
4.8.3 使用操作表委托
4.9 美化按钮
4.9.1 viewDidLoad方法
4.9.2 控件状态
4.9.3 可拉伸图像
4.10 成为出色的内存使用者
4.11 小结
第5章 自动旋转和自动调整大小
5.1 自动旋转机制
5.2 使用自动调整属性处理旋转
5.2.1 指定旋转支持
5.2.2 使用自动调整属性设计界面
5.2.3 大小检查器的自动调整属性
5.2.4 设置按钮的自动调整属性
5.3 在旋转时重构视图
5.3.1 声明和连接输出口
5.3.2 在旋转时移动按钮
5.4 切换视图
5.4.1 确定输出口和操作
5.4.2 声明操作和输出口
5.4.3 设计两个视图
5.4.4 实现交换和操作
5.5 小结
第6章 多视图应用程序
6.1 多视图应用程序的常见类型
6.2 多视图应用程序的体系结构
6.2.1 根控制器
6.2.2 内容视图剖析
6.3 构建View Switcher
6.3.1 创建视图控制器和nib文件
6.3.2 修改应用程序委托
6.3.3 SwitchViewController.h
6.3.4 添加视图控制器
6.3.5 构建包含工具栏的视图
6.3.6 编写根视图控制器
6.3.7 实现内容视图
6.3.8 制作转换动画
6.4 小结
第7章 标签栏与选取器
7.1 Pickers应用程序
7.2 委托和数据源
7.3 建立工具栏框架
7.3.1 创建文件
7.3.2 添加根视图控制器
7.3.3 编辑MainWindow.xib
7.3.4 连接输出口,然后运行
7.4 实现日期选取器
7.5 实现单个组件选取器
7.5.1 声明输出口和操作
7.5.2 构建视图
7.5.3 将控制器实现为数据源和委托
7.6 实现多组件选取器
7.6.1 声明输出口和操作
7.6.2 构建视图
7.6.3 实现控制器
7.7 实现独立组件
7.8 使用自定义选取器创建简单游戏
7.8.1 编写控制器头文件
7.8.2 构建视图
7.8.3 添加图像资源
7.8.4 实现控制器
7.8.5 最后的细节
7.8.6 链接Audio Toolbox框架
7.9 小结
第8章 表视图简介
8.1 表视图基础
8.1.1 表视图和表视图单元
8.1.2 分组表和无格式表
8.2 实现一个简单的表
8.2.1 设计视图
8.2.2 编写控制器
8.2.3 添加一个图像
8.2.4 表视图单元样式
8.2.5 设置缩进级别
8.2.6 处理行的选择
8.2.7 更改字体大小和行高
8.3 定制表视图单元
8.3.1 单元应用程序
8.3.2 使用UITableViewCell的自定义子类
8.4 分组分区和索引分区
8.4.1 构建视图
8.4.2 导入数据
8.4.3 实现控制器
8.4.4 添加索引
8.5 实现搜索栏
8.5.1 重新考虑设计
8.5.2 深层可变副本
8.5.3 更新控制器头文件
8.5.4 修改视图
8.5.5 修改控制器实现
8.6 小结
第9章 导航控制器和表视图
9.1 导航控制器
9.1.1 栈的性质
9.1.2 控制器栈
9.2 由6个部分组成的分层应用程序:Nav
9.2.1 子控制器
9.2.2 Nav应用程序的骨架
9.2.3 第一个子控制器:展示按钮视图
9.2.4 第二个子控制器:校验表
9.2.5 第三个子控制器:表行上的控件
9.2.6 第四个子控制器:可移动的行
9.2.7 第五个子控制器:可删除的行
9.2.8 第六个子控制器:可编辑的详细窗格
9.2.9 其他内容
9.3 小结
第10章 iPad开发注意事项
10.1 分割视图和浮动窗口
10.2 创建SplitView项目
10.3 xib定义结构
10.4 代码定义功能
10.5 显示总统信息
10.6 创建浮动窗口
10.7 小结
第11章 应用程序设置和用户默认设置
11.1 设置束
11.2 AppSettings应用程序
11.2.1 创建项目
11.2.2 使用设置束
11.2.3 读取应用程序中的设置
11.2.4 更改应用程序中的默认设置
11.2.5 实现逼真效果
11.3 小结
第12章 保存数据
12.1 应用程序的沙盒
12.1.1 获取Documents目录
12.1.2 获取tmp目录
12.2 文件保存策略
12.2.1 单个文件持久性
12.2.2 多个文件持久性
12.3 属性列表
12.3.1 属性列表序列化
12.3.2 持久性应用程序的第一个版本
12.4 对模型对象进行归档
12.4.1 符合NSCoding
12.4.2 实现NSCopying
12.4.3 对数据对象进行归档和取消归档
12.4.4 归档应用程序
12.5 使用iPhone的嵌入式SQLite3
12.5.1 创建或打开数据库
12.5.2 绑定变量
12.5.3 SQLite3应用程序
12.6 使用Core Data
12.6.1 实体和托管对象
12.6.2 Core Data应用程序
12.7 小结
第13章 Grand Central Dispatch、后台处理及其应用
13.1 Grand Central Dispatch
13.2 SlowWorker简介
13.3 线程基础知识
13.4 工作单元
13.5 GCD:低级队列
13.5.1 傻瓜式操作
13.5.2 改进SlowWorker
13.6 后台处理
13.6.1 应用程序生命周期
13.6.2 状态更改通知
13.6.3 创建State Lab
13.6.4 执行状态
13.6.5 利用执行状态更改
13.6.6 处理不活动状态
13.6.7 处理后台状态
13.7 小结
第14章 使用Quartz和OpenGL绘图
14.1 图形世界的两个视图
14.2 Quart绘图方法
14.2.1 Quartz 2D的图形上下文
14.2.2 坐标系
14.2.3 指定颜色
14.2.4 在上下文中绘制图像
14.2.5 绘制形状:多边形、直线和曲线
14.2.6 Quartz 2D工具示例:模式、梯度、虚线模式
14.3 QuartzFun应用程序
14.3.1 构建QuartzFun应用程序
14.3.2 添加Quartz Drawing代码
14.3.3 优化QuartzFun应用程序
14.4 GLFun应用程序
14.4.1 构建GLFun应用程序
14.4.2 使用OpenGL绘图
14.4.3 完成GLFun
14.5 小结
第15章 轻击、触摸和手势
15.1 多触摸术语
15.2 响应者链
15.2.1 响应者链中的对象
15.2.2 转发事件:保持响应者链的活动状态
15.3 多触摸体系结构
15.3.1 将触摸相关代码放在何处
15.3.2 4个手势通知方法
15.4 检测触摸
15.4.1 构建一个Touch Explorer应用程序
15.4.2 运行Touch Explorer
15.5 检测轻扫
15.5.1 构建Swipes应用程序
15.5.2 使用自动手势识别
15.5.3 实现多个轻扫动作
15.6 检测多次轻击
15.7 检测捏合操作
15.8 创建和使用自定义手势
15.8.1 定义选中标记手势
15.8.2 将勾选标记手势附加到视图
15.9 小结
第16章 Core Location定位功能
16.1 位置管理器
16.1.1 设置所需的精度
16.1.2 设置距离筛选器
16.1.3 启动位置管理器
16.1.4 更明智地使用位置管理器
16.2 位置管理器委托
16.2.1 获取位置更新
16.2.2 使用CLLocation获取纬度和经度
16.2.3 错误通知
16.3 尝试使用Core Location
16.3.1 更新位置管理器
16.3.2 确定移动距离
16.4 小结
第17章 加速计
17.1 加速计物理学
17.2 不要忘记旋转
17.3 Core Motion和动作管理器
17.3.1 基于事件的动作
17.3.2 主动动作访问
17.3.3 加速计结果
17.4 检测摇动
17.4.1 Baked-In摇动
17.4.2 摇动与击碎
17.5 将加速计用作方向控制器
17.5.1 滚弹珠程序
17.5.2 编写Ball View
17.5.3 计算小球运动
17.6 小结
第18章 iPhone照相机和照片库
18.1 使用图像选取器和UIImagePicker-Controller
18.2 实现图像选取器控制器委托
18.3 实际测试照相机和库
18.3.1 设计界面
18.3.2 实现照相机视图控制器
18.4 小结
第19章 应用程序本地化
19.1 本地化体系结构
19.2 字符串文件
19.2.1 字符串文件里面是什么
19.2.2 本地化的字符串宏
19.3 现实中的iPhone:本地化应用程序
19.3.1 创建LocalizeMe
19.3.2 测试LocalizeMe
19.3.3 本地化nib文件
19.3.4 本地化图像
19.3.5 生成和本地化字符串文件
19.3.6 本地化应用程序显示名称
19.4 小结
第20章 未来之路
20.1 别陷进单一的思路里
20.1.1 苹果公司的文档
20.1.2 邮件列表
20.1.3 论坛
20.1.4 网站
20.1.5 博客
20.2 参考资料
20.3 作者
20.4 再会