第1章 iOS开发入门
1.1 iOS概述 2
1.1.1 看iOS的发展历史 2
1.1.2 全新的版本——iOS6 2
1.2 从iPhone到iPad 5
1.2.1 iPhone 5
1.2.2 iPad 5
1.2.3 设备之间的差异 6
1.3 加入iOS开发团队 7
1.4 搭建开发环境 9
1.4.1 Xcode介绍 9
1.4.2 iOS SDK介绍 10
1.4.3 下载并安装Xcode 12
1.4.4 SVN配置 15
1.4.5 SVN操作 19
1.5 使用Xcode开发环境 24
1.5.1 使用Xcode创建程序的基本步骤 24
1.5.2 Xcode的基本功能 24
1.6 启动模拟器 37
1.7 常用的开发框架 41
1.7.1 Foundation框架简介 41
1.7.2 Cocoa框架简介 43
1.8 常用的第三方工具 44
1.8.1 iPhone Simulator 44
1.8.2 Interface Builder 46
第2章 认识“进步”最快的Objective-C
2.1 最耀眼的新星 48
2.1.1 看一份统计数据 48
2.1.2 Objective-C的走红过程 48
2.1.3 究竟何为Objective-C 49
2.1.4 为什么选择Objective-C? 49
2.2 从面向对象编程开始谈起 50
2.2.1 何谓面向过程编程 51
2.2.2 编程语言在处理问题中的作用 51
2.2.3 面向对象的编程语言 52
2.2.4 面向对象的组织结构和、处理对象和设计类 52
2.3 Objective-C的优点及缺点 55
2.4 一个简单的例子 55
2.4.1 使用Xcode编辑代码 56
2.4.2 基本元素介绍 59
2.5 数据类型和常量 63
2.5.1 int类型 64
2.5.2 float类型 65
2.5.3 double类型 66
2.5.4 char类型 67
2.5.5 字符常量 68
2.5.6 id类型 69
2.5.7 限定词 71
2.5.8 总结基本数据类型 72
2.6 字符串 73
2.7 算数表达式 74
2.7.1 运算符的优先级 74
2.7.2 整数运算和一元负号运算符 76
2.7.3 模运算符 77
2.7.4 整型值和浮点值的相互转换 78
2.7.5 类型转换运算符 79
2.8 表达式 79
2.8.1 常量表达式 79
2.8.2 条件运算符 80
2.8.3 sizeof运算符 80
2.8.4 关系运算符 81
2.8.5 强制类型转换运算符 82
2.9 位运算符 83
2.9.1 按位与运算符 83
2.9.2 按位或运算符 84
2.9.3 按位异或运算符 84
2.9.4 一次求反运算符 85
2.9.5 向左移位运算符 86
2.9.6 向右移位运算符 86
2.9.7 总结Objective-C的运算符 87
第3章 Cocoa Touch
3.1 Cocoa Touch基础 90
3.1.1 Cocoa Touch概述 90
3.1.2 为什么推出Cocoa Touch 90
3.1.3 Cocoa Touch的优势 91
3.2 iPhone的技术层 92
3.2.1 Cocoa Touch 层 92
3.2.2 多媒体层 97
3.2.3 核心服务层 98
3.2.4 核心OS层 99
3.3 Cocoa Touch中的框架 99
3.3.1 Core Animation 99
3.3.2 Core Audio 100
3.3.3 Core Data 101
3.4 iOS程序的生命周期 102
3.4.1 从一段代码看iOS程序的生命周期 102
3.4.2 iOS程序生命周期的原理 103
3.4.3 UIViewController生命周期 105
3.4.4 分析两类程序的生命周期 105
3.5 Cocoa中的类 108
3.5.1 核心类 108
3.5.2 数据类型类 111
3.5.3 UI界面类 115
3.6 Cocoa Touch的国际化 118
3.7 使用Xcode学习iOS框架 119
3.7.1 使用Xcode文档 119
3.7.2 快速帮助 120
第4章 探索Xcode Interface Builder
4.1 Interface Builder基础 124
4.1.1 Interface Builder的用处 124
4.1.2 Interface Builder的新特色 124
4.2 Interface Builder采用的方法 126
4.3 Interface Builder的故事板 127
4.3.1 推出的背景 127
4.3.2 故事板的文档大纲 128
4.3.3 文档大纲的区域对象 130
4.4 创建一个界面 130
4.4.1 对象库 131
4.4.2 将对象加入到视图中 132
4.4.3 使用IB布局工具 132
4.5 定制界面外观 135
4.5.1 使用属性检查器 136
4.5.2 设置辅助功能属性 136
4.5.3 测试界面 138
4.6 将界面连接到代码 138
4.6.1 打开项目 138
4.6.2 输出口和操作 140
4.6.3 创建到输出口的连接 140
4.6.4 创建到操作的连接 143
4.6.5 使用快速检查器编辑连接 145
4.6.6 使用Interface Builder编写代码 146
4.6.7 对象身份 146
第5章 使用Xcode编写MVC程序
5.1 MVC模式基础 148
5.1.1 MVC的诞生背景 148
5.1.2 MVC模式的结构 148
5.1.3 MVC的特点 149
5.1.4 使用MVC实现程序设计的结构化 150
5.2 Xcode中的MVC 150
5.2.1 原理 150
5.2.2 模板就是给予MVC的 151
5.3 Xcode如何实现MVC 152
5.3.1 视图 152
5.3.2 视图控制器 152
5.3.3 深入研究IBOutlet和IBAction 154
5.4 数据模型 156
5.5 使用模板Single View Application 157
5.5.1 实例目的 157
5.5.2 创建项目 157
5.5.3 规划变量和连接 163
5.5.4 设计界面 165
5.5.5 创建并连接输出口和操作 167
5.5.6 实现应用程序逻辑 169
5.5.7 生成应用程序 171
第6章 使用文本、键盘和按钮
6.1 基本用户输入和输出 173
6.1.1 按钮 173
6.1.2 文本框和文本视图 173
6.1.3 标签 174
6.2 联合使用文本框、文本视图和按钮 178
6.2.1 创建项目 179
6.2.2 设计界面 181
6.2.3 创建并连接输出口和操作 188
6.2.4 实现按钮模板 190
6.2.5 隐藏键盘 192
6.2.6 实现应用程序逻辑 195
6.2.7 总结执行 195
第7章 使用基本控件
7.1 滑块控件 200
7.1.1 使用 UISlider 控件的基本方法 200
7.1.2 演示例子 201
7.2 步进控件 210
7.3 图像视图控件 211
7.3.1 UIImageView的常用操作 211
7.4 联合使用图像动画、滑块和步进控件 216
7.4.1 实现概述 216
7.4.2 创建项目 216
7.4.3 设计界面 219
7.4.4 创建并连接到输出口和操作 224
7.4.5 实现应用程序逻辑 226
7.4.6 调试运行 233
第8章 使用高级控件
8.1 开关控件 235
8.1.1 联合使用UISlider与UISwitch控件 235
8.1.2 自定义UISwitch 237
8.1.3 改变UISWitch文本和颜色 238
8.1.4 使用UIswitch 241
8.2 分段控件 243
8.2.1 分段控件的属性和方法 244
8.2.2 使用 UISegmentedControl控件 246
8.3 Web视图 249
8.4 可滚动的视图 250
8.4.1 UIScrollView的基本用法 251
8.4.2 深入分析UIScrollView 252
8.5 使用可滚动视图控件 255
8.5.1 创建项目 255
8.5.2 设计界面 256
8.5.3 创建并连接输出口和操作 258
8.5.4 实现应用程序逻辑 258
8.5.5 生成应用程序 259
第9章 提醒处理
9.1 提醒视图 261
9.1.1 UIAlertView基础 261
9.1.2 不同的提醒效果 265
9.1.3 UIAlertView实战 266
9.2 操作表 270
9.2.1 操作表的基本用法 270
9.2.2 响应操作表 271
9.2.3 使用UIActionSheet的 272
9.3 系统声音服务 275
9.3.1 访问声音服务 275
9.3.2 提醒音和震动 276
9.3.3 演示系统声音服务的用法 277
第10章 场景和弹出框处理
10.1 多场景故事板 284
10.1.1 多场景故事板基础 284
10.1.2 创建多场景项目 285
10.1.3 创建切换 290
10.1.4 手工控制模态切换 293
10.1.5 以编程方式创建模态场景切换 294
10.1.6 在场景之间传递数据 295
10.1.7 模态切换演练1 297
10.1.8 模态切换演练2 303
10.2 iPad弹出框 308
10.2.1 创建弹出框 308
10.2.2 创建弹出切换 309
10.2.3 手工显示弹出框 311
10.2.4 响应用户关闭弹出框 311
10.2.5 以编程方式创建并显示弹出框 313
10.2.6 使用弹出框实例 315
第11章 工具栏和选择器
11.1 工具栏 UIToolbar 320
11.1.1 栏按钮项 320
11.1.2 修改UIToolBar的背景颜色 321
11.2 选择器——UIDatePicker 322
11.2.1 UIDatePicker基础 323
11.2.2 深入分析UIDatePicker 324
11.2.3 使用 UIDatePicker 325
11.3 选择器视图 328
11.3.1 选择器视图数据源协议 329
11.3.2 选择器视图委托协议 329
11.3.3 高级选择器委托方法 331
11.3.4 总结 UIPickerView中的实例方法 331
11.3.5 使用UIPickerView 332
11.4 UIToolBar演练——实现一个播放、暂停按钮 334
11.5 UIDatePicker实例——实现一个日期选择器 337
11.5.1 创建项目 337
11.5.2 设计界面 338
11.5.3 创建切换 339
11.5.4 创建并连接输出口和操作 339
11.5.5 实现场景切换逻辑 340
11.5.6 实现日期计算逻辑 342
11.5.7 生成应用程序 345
第12章 两种控制器
12.1 视图控制器在多场景开发中的用处 347
12.2 使用导航控制器 347
12.2.1 导航栏、导航项和栏按钮项 349
12.2.2 UINavigationController使用详解 349
12.2.3 在故事板中使用导航控制器 352
12.2.4 在导航场景之间共享数据 354
12.2.5 使用 UINavigationController的流程 355
12.2.6 实战演练 355
12.3 选项卡栏控制器 359
12.3.1 选项卡栏和选项卡栏项 360
12.3.2 在选项卡栏控制器管理的场景之间共享数据 362
12.3.3 UITabBarController使用详解 362
12.3.4 实战演练 365
12.4 使用导航控制器展现三个场景 370
12.4.1 创建项目 370
12.4.2 创建压入切换 372
12.4.3 设计界面 373
12.4.4 创建并连接输出口和操作 373
12.4.5 实现应用程序逻辑 374
第13章 表视图和分割视图控制器
13.1 了解表视图 377
13.1.1 表视图的外观 377
13.1.2 表单元格 378
13.1.3 添加表视图 378
13.1.4 UITableView详解 382
13.1.5 自定义UITableViewCell 385
13.2 探索分割视图控制器(仅适用于iPad) 391
13.2.1 分割视图控制器基础 392
13.2.2 实现分割视图控制器 393
13.2.3 模板Master-Detail Application 394
13.3 表视图实战演练 394
13.3.1 创建项目 394
13.3.2 设计界面 395
13.3.3 连接输出口delegate和dataSource 396
13.3.4 实现应用程序逻辑 396
13.3.5 生成应用程序 401
13.4 创建基于“主-从”视图的应用程序 401
13.4.1 创建项目 401
13.4.2 调整iPad界面 403
13.4.3 调整iPhone界面 404
13.4.4 实现应用程序数据源 405
13.4.5 实现主视图控制器 408
13.4.6 实现细节视图控制器 410
13.4.7 修复细节视图控制器引用问题 411
13.4.8 生成应用程序 411
第14章 读写应用程序数据
14.1 iOS应用程序和数据存储 414
14.2 数据存储方式 415
14.2.1 用户默认设置 415
14.2.2 设置束 416
14.2.3 直接访问文件系统 417
14.2.4 icloud存储 420
14.2.5 使用SQLite3存储和读取数据 421
14.3 演示实例——通过隐式首选项实现一个手电筒程序 426
14.3.1 创建项目 426
14.3.2 创建界面 427
14.3.3 创建并连接输出口和操作 428
14.3.4 实现应用程序逻辑 429
14.3.5 生成应用程序 431
第15章 界面旋转和大小处理
15.1 可旋转和调整大小的界面 433
15.1.1 启用界面旋转 433
15.1.2 设计可旋转和调整大小的界面 434
15.2 使用Interface Builder创建可旋转和调整大小的界面 434
15.2.1 创建项目 435
15.2.2 设计灵活的界面 435
15.3 旋转时调整控件的框架 438
15.3.1 创建项目 438
15.3.2 设计界面 439
15.3.3 创建并连接输出口 442
15.3.4 实现应用程序逻辑 442
15.4 旋转时切换视图 443
15.4.1 创建项目 444
15.4.2 设计界面 444
15.4.3 创建并连接输出口 446
15.4.4 实现应用程序逻辑 446
第16章 多点触摸和手势识别
16.1 多点触摸手势识别基础 449
16.1.1 多点触摸 449
16.1.2 手势 450
16.1.3 添加手势识别器 450
16.1.4 iOS的触摸事件处理 451
16.1.5 使用复杂的触摸和手势UIXXGestureRecognizer 455
16.2 实现一个手势识别器 457
16.2.1 创建项目 458
16.2.2 设计界面 459
16.2.3 给视图添加手势识别器 460
16.2.4 创建并连接输出口和操作 462
16.2.5 实现应用程序逻辑 463
第17章 检测设备朝向和移动
17.1 iOS的移动检测机制 469
17.2 加速计 469
17.2.1 加速计基础 469
17.2.2 UIAccelerometer类 470
17.2.3 使用加速计的流程 473
17.3 陀螺仪 475
17.4 访问朝向和运动数据 475
17.4.1 通过UIDevice请求朝向通知 475
17.4.2 使用Core Motion读取加速计和陀螺仪数据 475
17.5 检测朝向演练 477
17.5.1 创建项目 477
17.5.2 设计UI 477
17.5.3 创建并连接输出口 478
17.5.4 实现应用程序逻辑 478
17.6 检测倾斜和旋转 480
17.6.1 创建项目 480
17.6.2 设计界面 482
17.6.3 创建并连接输出口和操作 482
17.6.4 买现应用程序逻辑 483
第18章 多媒体应用
18.1 Media Player框架 489
18.1.1 使用电影播放器 489
18.1.2 处理播放结束 491
18.1.3 使用多媒体选择器 491
18.1.4 使用音乐播放器 492
18.1.5 Media Player框架演练 493
18.2 AV Foundation框架 496
18.2.1 使用AV音频播放器 496
18.2.2 使用AV录音机 497
18.2.3 使用AV Foundation框架播放音频的流程 498
18.3 图像选择器 499
18.3.1 使用图像选择器 500
18.3.2 图像选择器控制器委托 500
18.3.3 UIImagePickerController在iPhone和iPad上的区别 501
18.3.4 用UIImagePickerController调用系统照相机 502
18.3.5 防止 UIImagePickerController“坏死” 503
18.4 Core Image框架 504
18.4.1 使用Core Image滤镜 504
18.4.2 使用 Core Image框架 505
第19章 实现定位处理
19.1 Core Location详解 510
19.1.1 Core Location基础 510
19.1.2 获取位置 513
19.2 实战演练——创建一个支持定位的应用程序 517
19.2.1 创建项目 517
19.2.2 设计视图 519
19.2.3 创建并连接输出口 520
19.2.4 实现应用程序逻辑 521
19.2.5 生成应用程序 523
第20章 与其他应用程序集成
20.1 地址簿 526
20.1.1 框架Address Book UI 526
20.1.2 框架Address Book 528
20.2 电子邮件 528
20.3 使用Twitter发送推特信息 530
20.4 地图功能 530
20.5 实战演练——联合使用地址簿、电子邮件、Twitter和地图 533
20.5.1 创建项目 533
20.5.2 设计界面 534
20.5.3 创建并连接输出口和操作 534
20.5.4 实现地址簿逻辑 535
20.5.5 实现地图逻辑 538
20.5.6 实现电子邮件逻辑 542
20.5.7 实现Twitter逻辑 543
20.5.8 生成应用程序 544
第21章 开发通用的项目程序
21.1 开发通用应用程序 546
21.1.1 图标文件 547
21.1.2 启动图像 548
21.2 使用通用程序模板创建通用应用程序 548
21.2.1 创建项目 548
21.2.2 设计界面 549
21.2.3 创建并连接输出口 550
21.2.4 实现应用程序逻辑 550
21.3 添加视图控制器 551
21.3.1 创建项目 551
21.3.2 设计界面 553
21.3.3 创建并连接输出口 553
21.3.4 实现应用程序逻辑 553
21.3.5 生成应用程序 554
21.4 使用多个目标 555
21.4.1 将iPhone目标转换为iPad目标 555
21.4.2 将iPad目标转换为iPhone目标 556
本书写作版本高,基于iOS6,因此内容很新。本书作者为多年从事iOS开发的作者,具有很高的技术水平。为了方便读者学习,本书还提供了配套代码光盘。