第1章 欢迎来到iOS世界 1
1.1 关于本书 1
1.2 必要条件 1
1.2.1 开发者选项 3
1.2.2 必备知识 3
1.3 编写iOS应用程序有何不同 4
1.3.1 只能同时运行一个应用 4
1.3.2 只有一个窗口 4
1.3.3 有限的访问权限 5
1.3.4 有限的响应时间 5
1.3.5 有限的屏幕大小 5
1.3.6 有限的系统资源 5
1.3.7 不支持垃圾回收 6
1.3.8 新功能 6
1.3.9 与众不同的交互方法 6
1.4 本书内容 7
1.5 这一版的新内容 8
1.6 准备开始吧 9
第2章 创建项目 10
2.1 在Xcode中创建项目 10
2.1.1 Xcode项目窗口 14
2.1.2 深入研究项目 22
2.2 界面构建器简介 23
2.2.1 文件格式 24
2.2.2 分镜 25
2.2.3 库 26
2.2.4 在视图中添加标签 27
2.2.5 属性修改 29
2.3 画龙点睛——美化iPhone应用 31
2.4 小结 33
第3章 实现基本交互 34
3.1 MVC方法 34
3.2 创建项目 35
3.3 视图控制器 36
3.3.1 输出接口和操作方法 37
3.3.2 清理视图控制器 40
3.3.3 设计用户界面 40
3.3.4 运行应用 50
3.3.5 样式文本 50
3.4 应用程序委托 51
3.5 小结 54
第4章 更丰富的用户界面 55
4.1 满是控件的屏幕 55
4.2 活跃控件、静态控件和被动控件 57
4.3 创建应用程序 58
4.4 实现图像视图和文本框 59
4.4.1 添加图像视图 59
4.4.2 调整图像视图的大小 62
4.4.3 设置视图属性 63
4.4.4 添加文本框 65
4.4.5 创建并关联输出接口 71
4.5 关闭键盘 73
4.5.1 输入完成后关闭键盘 73
4.5.2 通过触摸背景关闭键盘 74
4.5.3 添加滑动条和标签 77
4.5.4 添加顶部约束 78
4.5.5 创建并关联操作方法和输出接口 79
4.5.6 实现操作方法 79
4.6 实现开关、按钮和分段控件 80
4.6.1 添加两个带标签的开关 81
4.6.2 为开关创建并关联输出接口和操作方法 83
4.6.3 实现开关的操作方法 83
4.7 美化按钮 85
4.7.1 可拉伸图像 85
4.7.2 控件状态 86
4.7.3 为按钮创建并关联输出接口和操作方法 87
4.8 实现分段控件的操作方法 87
4.9 实现操作表单和警告视图 88
4.9.1 遵从操作表单委托方法 88
4.9.2 显示操作表单 89
4.9.3 最终调整 92
4.10 小结 92
第5章 自动旋转和自动调整大小 93
5.1 自动旋转机制 93
5.1.1 点、像素和Retina显示屏 94
5.1.2 自动旋转的实现方式 95
5.2 选择视图支持的方向 95
5.2.1 应用级支持的方向 96
5.2.2 单个控制器的旋转支持 97
5.3 使用约束设计界面 99
5.3.1 覆盖默认的约束 101
5.3.2 与屏幕等宽的标签 102
5.4 旋转时重构视图 104
5.4.1 创建并关联输出接口 106
5.4.2 旋转时移动按钮 106
5.5 小结 109
第6章 多视图应用 110
6.1 多视图应用的常见类型 110
6.2 多视图应用的体系结构 113
6.2.1 根控制器 115
6.2.2 内容视图剖析 116
6.3 构建View Switcher项目 116
6.3.1 创建视图控制器和分镜 117
6.3.2 修改应用委托 119
6.3.3 修改BIDSwitchView Controller.m 120
6.3.4 添加视图控制器 120
6.3.5 构建带有工具栏的视图 122
6.3.6 编写根视图控制器 124
6.3.7 实现内容视图 127
6.3.8 转换过程的动画效果 130
6.4 小结 132
第7章 分页栏与选取器 133
7.1 Pickers应用程序 134
7.2 委托和数据源 136
7.3 创建Pickers应用程序 136
7.3.1 创建视图控制器 136
7.3.2 添加分镜 137
7.3.3 创建分页栏控制器 138
7.3.4 初次运行 140
7.4 实现日期选取器 141
7.5 实现单滚轮选取器 144
7.5.1 构建视图 144
7.5.2 将控制器实现为数据源和委托 145
7.6 实现多滚轮取器 149
7.6.1 声明输出接口和操作方法 149
7.6.2 构建视图 149
7.6.3 实现控制器 150
7.7 实现内容取决于滚轮 152
7.8 使用自定义选取器创建一个简单游戏 158
7.8.1 编写控制器头文件 158
7.8.2 构建视图 159
7.8.3 添加图像资源 160
7.8.4 实现控制器 160
7.8.5 最后的细节 163
7.9 小结 166
第8章 表视图简介 167
8.1 表视图基础 167
8.1.1 表视图和表视图单元 168
8.1.2 分组表和无格式表 168
8.2 实现一个简单表 170
8.2.1 设计视图 170
8.2.2 编写控制器 171
8.2.3 添加一个图像 175
8.2.4 表视图单元样式 176
8.2.5 设置缩进级别 178
8.2.6 处理行的选择 179
8.2.7 更改字体大小和行高 180
8.3 定制表视图单元 182
8.3.1 向表视图单元添加子视图 182
8.3.2 创建UITableViewCell子类 183
8.3.3 从nib文件加载UITableViewCell 187
8.4 分组分区和索引分区 191
8.4.1 构建视图 191
8.4.2 导入数据 191
8.4.3 实现控制器 192
8.4.4 添加索引 196
8.5 解决状态栏干扰 197
8.6 实现搜索栏 198
8.7 小结 203
第9章 导航控制器和表视图 204
9.1 导航控制器 204
9.1.1 栈的概念 204
9.1.2 控制器栈 205
9.2 一个简单的字体浏览器:Fonts 206
9.2.1 子控制器 207
9.2.2 Font应用的基础框架 209
9.3 创建根视图控制器 213
9.4 初始化分镜 216
9.5 第一个子控制器:字体列表视图 218
9.5.1 设定字体列表的分镜 220
9.5.2 对根视图控制器的转场进行设置 221
9.6 创建字体尺寸视图控制器 222
9.6.1 设计字体尺寸视图控制器的分镜 224
9.6.2 对字体列表视图控制器的转场进行设置 224
9.7 创建字体信息视图控制器 225
9.7.1 设计字体信息视图控制器的分镜 226
9.7.2 设置约束 227
9.7.3 调整字体列表视图控制器的转场 228
9.7.4 我的收藏字体 229
9.8 改善表视图 229
9.8.1 实现轻扫删除 230
9.8.2 实现拖动排序 231
9.9 小结 232
第10章 集合视图 233
10.1 创建DialogViewer项目 233
10.2 修补视图控制器类 234
10.3 自定义单元 235
10.4 配置视图控制器 237
10.5 内容单元 239
10.6 实现流式布局 240
10.7 分区标题视图 241
10.8 小结 243
第11章 iPad开发注意事项 244
11.1 分割视图和浮动窗口 244
11.1.1 创建SplitView项目 246
11.1.2 在分镜中定义结构 248
11.1.3 使用代码定义功能 250
11.2 显示总统信息 256
11.3 创建浮动窗口 261
11.4 小结 267
第12章 应用设置及用户默认设置 268
12.1 设置捆绑包入门 268
12.2 应用:Bridge Control 269
12.2.1 创建项目 272
12.2.2 使用设置捆绑包 273
12.2.3 读取应用中的设置 286
12.2.4 在应用中修改默认设置 289
12.2.5 注册默认值 292
12.2.6 保证设置有效 293
12.3 小结 295
第13章 数据持久化基础知识 296
13.1 应用的沙盒 296
13.1.1 获取Documents目录 297
13.1.2 获取tmp目录 298
13.2 文件保存方案 298
13.2.1 单文件持久化 299
13.2.2 多文件持久化 299
13.3 属性列表 299
13.3.1 属性列表序列化 299
13.3.2 Persistence应用的第一个版本 300
13.4 对模型对象进行归档 305
13.4.1 遵循NSCoding协议 305
13.4.2 实现NSCopying协议 306
13.4.3 对数据对象进行归档和取消归档 307
13.4.4 归档应用 308
13.5 使用iOS内嵌的SQLite3 311
13.5.1 创建或打开数据库 312
13.5.2 绑定变量 313
13.5.3 SQLite3应用 314
13.6 使用Core Data 320
13.6.1 实体和托管对象 321
13.6.2 Core Data应用 324
13.7 小结 333
第14章 iCloud之旅 334
14.1 使用UIDocument管理文档存储 334
14.1.1 构建TinyPix 335
14.1.2 创建BIDTinyPixDocument类 336
14.1.3 主控制器代码 338
14.1.4 初始分镜 345
14.1.5 创建BIDTinyPixView类 347
14.1.6 设计分镜 351
14.2 添加iCloud支持 353
14.2.1 创建授权文件 353
14.2.2 如何查询 354
14.2.3 保存在哪里 356
14.2.4 将首选项保存到iCloud 357
14.3 小结 358
第15章 Grand Central Dispatch和后台处理 359
15.1 Grand Central Dispatch 359
15.2 SlowWorker简介 360
15.3 线程基础知识 362
15.4 工作单元 363
15.5 GCD:底层队列 364
15.5.1 傻瓜式操作 364
15.5.2 改进SlowWorker 365
15.6 后台处理 370
15.6.1 应用生命周期 371
15.6.2 状态更改通知 372
15.6.3 创建State Lab项目 373
15.6.4 执行状态的变化 374
15.6.5 利用执行状态更改 376
15.6.6 处理不活跃状态 377
15.6.7 处理后台状态 380
15.7 小结 387
第16章 使用Core Graphics绘图 388
16.1 Quartz 2D基础概念 388
16.2 Quartz 2D绘图方法 388
16.2.1 Quartz 2D图形环境 389
16.2.2 坐标系统 390
16.2.3 指定颜色 391
16.2.4 在环境中绘制图像 393
16.2.5 绘制形状:多边形、直线和曲线 393
16.2.6 Quartz 2D样例:图案、渐变色、虚线图 394
16.3 QuartzFun应用程序 394
16.3.1 构建QuartzFun应用程序 395
16.3.2 添加Quartz 2D绘制代码 404
16.3.3 优化QuartzFun应用程序 409
16.4 小结 412
第17章 Sprite Kit游戏框架 413
17.1 基础入门 413
17.1.1 自定义初始场景 414
17.1.2 隐藏状态栏 415
17.2 场景设置 415
17.3 玩家动作 418
17.3.1 向场景中插入玩家 418
17.3.2 触摸处理 419
17.3.3 玩家移动 420
17.3.4 几何运算 421
17.3.5 轻微摆动 421
17.4 创建你的敌人 422
17.5 在场景中放入敌人 423
17.6 开始射击 425
17.6.1 定义物理类别 425
17.6.2 创建BIDBulletNode类 425
17.6.3 应用物理知识 427
17.6.4 在场景中添加导弹 427
17.7 利用物理引擎攻击敌人 429
17.8 实现关卡 431
17.8.1 注意敌人 431
17.8.2 进入下一关卡 431
17.9 自定义碰撞 433
17.9.1 为SKNode添加类别 434
17.9.2 向敌人添加自定义碰撞行为 435
17.9.3 准确显示玩家生命 436
17.10 粒子系统 437
17.10.1 第一个粒子 437
17.10.2 向场景中加入粒子 440
17.11 游戏结束 441
17.12 开始场景 443
17.13 播放音乐 445
17.14 小结 446
第18章 轻点、触摸和手势 447
18.1 多点触控术语 447
18.2 响应者链 448
18.2.1 响应事件 448
18.2.2 转发事件:保持响应者链的活动状态 449
18.3 多点触控体系结构 450
18.4 4个手势通知方法 450
18.5 TouchExplorer应用 451
18.6 Swipes应用 454
18.6.1 自动手势识别 457
18.6.2 实现多指轻扫 459
18.7 检测多次轻点 460
18.8 检测捏合和旋转 465
18.9 自定义手势 469
18.9.1 CheckPlease应用 470
18.9.2 CheckPlease的触摸方法 472
18.10 小结 474
第19章 Core Location和Map Kit 475
19.1 位置管理器 476
19.1.1 设置精度 476
19.1.2 设置距离筛选器 476
19.1.3 启动位置管理器 477
19.1.4 合理使用位置管理器 477
19.2 位置管理器委托 477
19.2.1 获取位置更新 477
19.2.2 使用CLLocation获取纬度和经度 477
19.2.3 错误通知 479
19.3 开始构建Core Location 480
19.4 将移动路线展现在地图上 484
19.5 小结 488
第20章 陀螺仪和加速计 489
20.1 加速计物理特性 489
20.2 陀螺仪旋转特性 490
20.3 Core Motion和动作管理器 490
20.3.1 基于事件的动作 491
20.3.2 主动动作访问 496
20.3.3 加速计结果 498
20.4 检测摇动 498
20.4.1 内嵌的摇动检测 499
20.4.2 摇动与击碎 500
20.5 将加速计用做方向控制器 502
20.5.1 滚弹珠程序 503
20.5.2 实现BIDBallView类 505
20.5.3 计算弹珠运动 508
20.6 小结 510
第21章 摄像头和照片库 511
21.1 图像选取器和UIImagePicker-
Controller 511
21.2 实现图像选取器控制器委托 513
21.3 实际测试摄像头和照片库 514
21.3.1 设计界面 515
21.3.2 实现摄像头视图控制器 515
21.4 小结 519
第22章 应用本地化 520
22.1 本地化体系结构 520
22.2 字符串文件 521
22.2.1 字符串文件 522
22.2.2 本地化的字符串宏 522
22.3 现实中的iOS本地化应用 523
22.3.1 创建LocalizeMe 523
22.3.2 测试LocalizeMe 526
22.3.3 本地化项目 527
22.3.4 初始化分镜 530
22.3.5 创建并本地化字符串文件 532
22.3.6 应用显示名称的本地化 535
22.4 小结 536
· · · · · · (
收起)