第1章 欢迎来到iPhone的世界
1.1 关于本书
1.2 必要条件
1.3 必备知识
1.4 编写iPhone应用程序有何不同
1.4.1 只有一个正在运行的应用程序
1.4.2 只有一个窗口
1.4.3 受限访问
1.4.4 有限的响应时间
1.4.5 有限的屏幕大小
1.4.6 有限的系统资源
1.4.7 不支持垃圾收集
1.4.8 新功能
1.4.9 与众不同的方法
1.5 本书内容
1.6 本次更新的内容
1.7 准备开始吧
第2章 创建基本项目
2.1 在Xcode中设置项目
2.2 Interface Builder简介
2.2.1 nib文件的构成
2.2.2 在视图中添加标签
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.3.1 导入图像
4.3.2 实现图像视图和文本字段
4.3.3 添加图像视图
4.3.4 添加文本字段
4.3.5 设置第二个文本字段的属性
4.3.6 连接输出口
4.4 构建和运行
4.4.1 完成输入后关闭键盘
4.4.2 通过触摸背景关闭键盘
4.5 实现滑块和标签
4.5.1 确定输出口
4.5.2 确定操作
4.5.3 添加输出口和操作
4.5.4 添加滑块和标签
4.5.5 连接操作和输出口
4.6 实现开关、按钮和分段控件
4.6.1 确定输出口
4.6.2 确定操作
4.6.3 添加开关、按钮和分段控件
4.6.4 连接开关输出口和操作
4.6.5 添加按钮
4.7 实现操作表和警报
4.7.1 遵从操作表委托方法
4.7.2 显示操作表
4.7.3 操作表委托和创建警报
4.8 美化按钮
4.8.1 viewDidLoad方法
4.8.2 控件状态
4.8.3 可拉伸图像
4.9 成为出色的内存使用者
4.10 小结
第5章 自动旋转和自动调整大小
5.1 使用自动调整属性处理旋转
5.1.1 指定旋转支持
5.1.2 使用自动调整属性设计界面
5.1.3 自动调整属性
5.1.4 设置按钮的自动调整属性
5.2 在旋转时重构视图
5.2.1 声明和连接输出口
5.2.2 在旋转时移动按钮
5.3 切换视图
5.3.1 确定输出口
5.3.2 确定动作
5.3.3 声明动作和输出口
5.3.4 设计两个视图
5.3.5 实现交换和动作
5.4 小结
第6章 多视图应用程序
6.1 View Switcher应用程序
6.2 多视图应用程序的体系结构
6.3 构建View Switcher
6.3.1 创建视图控制器和nib文件
6.3.2 修改应用程序委托
6.3.3 SwitchViewController.h
6.3.4 修改MainWindow.xib
6.3.5 编写SwitchViewController.m
6.3.6 实现内容视图
6.4 制作转换动画
6.5 小结
第7章 标签栏与选取器
7.1 Pickers应用程序
7.2 委托和数据源
7.3 建立工具栏框架
7.3.1 创建文件
7.3.2 添加根视图控制器
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 spin方法
7.8.6 viewDidLoad方法
7.8.7 最后的细节
7.8.8 链接Audio Toolbox框架
7.9 小结
第8章 表视图简介
8.1 表视图基础
8.2 实现一个简单的表
8.2.1 设计视图
8.2.2 编写控制器
8.3 添加一个图像
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 使用UITableViewCell的自定义子类
8.6 分组分区和索引分区
8.6.1 构建视图
8.6.2 导入数据
8.6.3 实现控制器
8.6.4 添加索引
8.7 实现搜索栏
8.7.1 重新考虑设计
8.7.2 深层可变副本
8.7.3 更新控制器头文件
8.7.4 修改视图
8.7.5 修改控制器实现
8.8 小结
第9章 导航控制器和表视图
9.1 导航控制器
9.1.1 栈的性质
9.1.2 控制器栈
9.2 由6个部分组成的分层应用程序:Nav
9.3 构建Nav应用程序的骨架
9.3.1 创建第一级视图控制器
9.3.2 设置导航控制器
9.4 第一个子控制器:展示按钮视图
9.5 第二个子控制器:校验表
9.6 第三个子控制器:表行上的控件
9.7 第四个子控制器:可移动的行
9.7.1 编辑模式
9.7.2 创建一个新的二级控制器
9.8 第五个子控制器:可删除的行
9.9 第六个子控制器:可编辑的详细窗格
9.9.1 创建数据模型对象
9.9.2 创建控制器
9.9.3 创建详细视图控制器
9.10 其他内容
9.11 小结
第10章 应用程序设置和用户默认设置
10.1 设置束
10.2 AppSettings应用程序
10.3 创建项目
10.4 使用设置束
10.4.1 在项目中添加设置束
10.4.2 设置属性列表
10.4.3 添加文本字段设置
10.4.4 添加安全文本字段设置
10.4.5 添加多值字段
10.4.6 添加拨动开关设置
10.4.7 添加滑块设置
10.4.8 添加子设置视图
10.5 读取应用程序中的设置
10.6 更改应用程序中的默认设置
10.7 小结
第11章 基本数据持久性
11.1 应用程序的沙盒
11.1.1 获取Documents目录
11.1.2 获取tmp目录
11.2 文件保存策略
11.2.1 单个文件持久性
11.2.2 多个文件持久性
11.3 持久保存应用程序数据
11.4 持久性应用程序
11.4.1 创建持久性项目
11.4.2 设计持久性应用程序视图
11.4.3 编辑持久性类
11.4.4 对模型对象进行归档
11.4.5 实现NSCopying
11.5 归档应用程序
11.5.1 实现FourLines类
11.5.2 实现PersistenceView-Controller类
11.6 使用iPhone的嵌入式SQLite3
11.7 使用Core Data
11.7.1 实体和托管对象
11.7.2 键/值编码
11.7.3 在上下文中结合它们
11.7.4 创建新托管对象
11.7.5 检索托管对象
11.7.6 设计数据模型
11.7.7 创建持久视图和控制器
11.7.8 将持久视图控制器设置为应用程序的根控制器
11.8 小结
第12章 使用Quartz和OpenGL绘图
12.1 图形世界的两个视图
12.2 本章的绘图应用程序
12.3 Quart绘图方法
12.3.1 Quartz 2D的图形上下文
12.3.2 坐标系
12.3.3 指定颜色
12.3.4 在上下文中绘制图像
12.3.5 绘制形状:多边形、直线和曲线
12.3.6 Quartz 2D工具示例:模式、梯度、虚线模式
12.4 构建QuartzFun应用程序
12.4.1 创建随机颜色
12.4.2 定义应用程序常量
12.4.3 实现QuartzFunView框架
12.4.4 向视图控制器中添加输出口和操作
12.4.5 更新QuartzFunViewContro-ller.xib
12.4.6 绘制直线
12.4.7 绘制矩形和椭圆形
12.4.8 绘制图像
12.4.9 优化QuartzFun应用程序
12.5 一些OpenGL ES基础知识
12.5.1 构建GLFun应用程序
12.5.2 设计Nib、添加框架、运行应用程序
12.6 小结
第13章 轻击、触摸和手势
13.1 多触摸术语
13.2 响应者链
13.3 多触摸体系结构
13.4 触摸浏览器应用程序
13.5 Swipes应用程序
13.6 实现多个轻扫动作
13.7 检测多次轻击
13.8 检测捏合操作
13.9 自己定义手势
13.10 小结
第14章 使用Core Location定位功能
14.1 位置管理器
14.1.1 设置所需的精度
14.1.2 设置距离筛选器
14.1.3 启动位置管理器
14.1.4 更明智地使用位置管理器
14.2 位置管理器委托
14.2.1 获取位置更新
14.2.2 使用CLLocation获取纬度和经度
14.2.3 错误通知
14.3 尝试使用Core Location
14.3.1 更新位置管理器
14.3.2 确定移动距离
14.4 小结
第15章 加速计
15.1 加速计物理学
15.2 访问加速计
15.2.1 UIAcceleration
15.2.2 实现accelerometer: didAccelerate:方法
15.3 摇动与击碎
15.3.1 用于击碎的代码
15.3.2 加载模拟文件
15.3.3 完好如初——复原触摸
15.4 滚弹珠程序
15.4.1 实现Ball View控制器
15.4.2 编写Ball View
15.4.3 计算小球运动
15.5 小结
第16章 iPhone照相机和照片库
16.1 使用图像选取器和UIImagePicker-Controller
16.2 实现图像选取器控制器委托
16.3 实际测试照相机和库
16.3.1 设计界面
16.3.2 实现照相机视图控制器
16.4 小结
第17章 应用程序本地化
17.1 本地化体系结构
17.2 使用字符串文件
17.3 现实中的iPhone:本地化应用程序
17.3.1 查看当前区域设置
17.3.2 测试LocalizeMe
17.3.3 本地化nib文件
17.3.4 查看本地化的项目结构
17.3.5 本地化图像
17.3.6 本地化应用程序图标
17.3.7 生成和本地化字符串文件
17.4 小结
第18章 未来之路
18.1 别陷进单一的思路里
18.1.1 苹果公司的文档
18.1.2 邮件列表
18.1.3 论坛
18.1.4 网站
18.1.5 博客
18.1.6 Dave和Jeff的博客及Twitter
18.1.7 参考图书
18.1.8 如果仍未解决问题
18.2 再会