第1章 iOS开发基础 2
1.1 全新的iOS 7系统 2
1.1.1 iOS发展史 2
1.1.2 iOS 7的全新功能 2
1.2 从iPhone到iPad 3
1.2.1 让世界疯狂的iPhone 3
1.2.2 改变世界的iPad 4
1.3 开发前的准备——加入iOS开发团队 5
1.4 安装Xcode 7
1.4.1 Xcode概述 7
1.4.2 iOS SDK介绍 7
1.4.3 下载并安装Xcode 9
1.5 熟悉Xcode集成环境 12
1.5.1 创建一个Xcode项目并启动模拟器 12
1.5.2 Xcode集成开发环境简介 16
1.6 常用的第三方工具 29
1.6.1 iPhone Simulator 29
1.6.2 Interface Builder 31
1.7 iOS的常用开发框架 31
1.7.1 Foundation框架简介 32
1.7.2 Cocoa框架简介 33
第2章 编写MVC程序 36
2.1 MVC模式基础 36
2.1.1 MVC的结构 36
2.1.2 MVC的特点 36
2.2 Xcode中的MVC 37
2.3 在Xcode中实现MVC 38
2.3.1 Xcode视图 38
2.3.2 Xcode视图控制器 38
2.4 数据模型 40
2.5 使用模板Single View Application 41
2.5.1 创建项目 41
2.5.2 规划变量和连接 47
2.5.3 设计界面 48
2.5.4 创建并连接输出口和操作 50
2.5.5 实现应用程序逻辑 52
2.5.6 生成应用程序 54
第3章 Cocoa Touch 56
3.1 Cocoa Touch基础 56
3.1.1 Cocoa Touch概述 56
3.1.2 Cocoa Iouch中的框架 56
3.1.3 Cocoa Touch的优势 57
3.2 iPhone的技术层 57
3.2.1 Cocoa Touch层 58
3.2.2 多媒体层 62
3.2.3 核心服务层 63
3.2.4 核心OS层 64
3.3 Cocoa Touch中的框架 64
3.3.1 Core Animation(图形处理)框架 64
3.3.2 Core Audio(多媒体处理)框架 65
3.3.3 Core Data(数据处理)框架 66
3.4 iOS程序的生命周期 66
3.4.1 iOS程序生命周期的原理 66
3.4.2 UIViewController的生命周期 68
3.5 Cocoa中的类 69
3.5.1 核心类 69
3.5.2 数据类型类 71
3.5.3 UI界面类 72
3.6 国际化 74
3.7 使用Xcode学习iOS框架 75
3.7.1 使用Xcode文档 75
3.7.2 快速帮助 76
第4章 Xcode Interface Builder界面开发 80
4.1 Interface Builder基础 80
4.1.1 Interface Builder的作用 80
4.1.2 Interface Builder的新特色 80
4.2 Interface Builder采用的方法 82
4.3 Interface Builder的故事板 83
4.3.1 推出的背景 83
4.3.2 故事板的文档大纲 84
4.3.3 文档大纲的区域对象 85
4.4 创建一个界面 85
4.4.1 对象库 86
4.4.2 将对象加入到视图中 87
4.4.3 使用IB布局工具 87
4.5 定制界面外观 90
4.5.1 使用属性检查器 90
4.5.2 设置辅助功能属性 91
4.5.3 测试界面 92
4.6 将界面连接到代码 93
4.6.1 打开项目 93
4.6 2输出口和操作 94
4.6.3 创建到输出口的连接 94
4.6.4 创建到操作的连接 97
第5章 文本框和文本视图 100
5.1 文本框(UITextField) 100
5.1.1 文本框基础 100
5.1.2 实战演练——在屏幕中显示一个文本输入框 100
5.1.3 实战演练——设置文本输入框的边框线样式 101
5.1.4 实战演练——设置文本输入框的字体和颜色 103
5.1.5 实战演练——在文本输入框中设置一个清空按钮 104
5.1.6 实战演练——为文本输入框设置背景图片 105
5.2 文本视图(UITextView) 106
5.2.1 文本视图基础 106
5.2.2 实战演练——在屏幕中换行显示文本 107
5.2.3 实战演练——在屏幕中显示可编辑的文本 108
5.2.4 实战演练——设置屏幕中文本的对齐方式 111
第6章 按钮和标签 115
6.1 标签(UILabel) 115
6.1.1 标签(UILabel)的属性 115
6.1.2 实战演练——使用标签(UILabel)显示一段文本 115
6.1.3 实战演练——在屏幕中显示指定字体和指定大小的文本 119
6.1.4 实战演练——设置屏幕中文本的对齐方式 120
6.2 按钮(UIButton) 121
6.2.1 按钮基础 121
6.2.2 实战演练——按下按钮后触发一个事件 122
6.2.3 实战演练——在屏幕中显示不同的按钮 123
第7章 滑块、步进和图像 127
7.1 滑块控件(UISlider) 127
7.1.1 使用UISlider控件的基本方法 127
7.1.2 实战演练——滑动滑块时显示对应的值 128
7.1.3 实战演练——滑动滑块控制文字的大小 130
7.2 步进控件(UIStepper) 131
7.3 图像视图控件(UIImageView) 132
7.3.1 UIImageView的常用操作 132
7.3.2 实战演练——在屏幕中显示图像 136
7.3.3 实战演练——在屏幕中绘制一幅图像 137
7.3.4 实战演练——在屏幕中绘图时设置透明度 138
第8章 使用开关控件和分段控件 143
8.1 开关控件(UISwitch) 143
8.1.1 开关控件基础 143
8.1.2 实战演练——改变UISwitch的文本和颜色 143
8.1.3 实战演练——显示具有开关状态的开关 146
8.1.4 实战演练——联合使用UISlider与UISwitch控件 148
8.2 分段控件 150
8.2.1 分段控件的属性和方法 151
8.2.2 实战演练——使用UISegmentedControl控件 153
8.2.3 实战演练——选择一个分段卡后可以改变屏幕的背景颜色 157
8.2.4 实战演练——设置分段卡的显示样式 158
8.2.5 实战演练——设置不显示分段卡的选择状态 159
第9章 提醒和操作表 162
9.1 提醒视图(UIAlertView) 162
9.1.1 UIAlertView基础 162
9.1.2 不同的提醒效果 166
9.1.3 实战演练——实现一个自定义提醒对话框 168
9.2 操作表(UIActionSheet) 171
9.2.1 操作表的基本用法 172
9.2.2 响应操作表 173
9.2.3 使用UIActionSheet的流程 174
第10章 工具栏和选择器 178
10.1 工具栏(UIToolbar) 178
10.1.1 工具栏基础 178
10.1.2 修改UIToolBar的背景颜色 179
10.1.3 实战演练——联合使用UIToolBar和UIView 180
10.1.4 实战演练——分别实现一个播放、暂停按钮 182
10.2 选择器视图(UIPickerView) 185
10.2.1 选择器视图基础 186
10.2.2 实战演练——实现两个UIPickerView控件间的数据依赖 188
10.3 日期选择器(UIDatePicker) 193
10.3.1 UIDatePicker基础 193
10.3.2 实战演练——使用UIDatePicker 196
10.3.3 实战演练——实现一个日期选择器 199
第11章 表视图(UITable) 208
11.1 表视图基础 208
11.1.1 表视图的外观 208
11.1.2 表单元格 208
11.1.3 添加表视图 209
11.1.4 UITableView详解 212
11.2 实战演练 216
11.2.1 实战演练——拆分表视图 216
11.2.2 实战演练——列表显示18条数据 219
11.2.3 实战演练——分段显示列表中的数据 221
11.2.4 实战演练——删除单元格 223
第12章 活动指示器、进度条和检索条 227
12.1 活动指示器(UIActivityIndicatorView) 227
12.1.1 活动指示器基础 227
12.1.2 实战演练——实现一个播放器的活动指示器 227
12.2 进度条(UIProgressView) 230
12.2.1 进度条基础 230
12.2.2 实战演练——实现一个蓝色进度条效果 230
12.3 检索条(UISearchBar) 232
12.3.1 检索条基础 232
12.3.2 实战演练——在屏幕中实现一个检索框效果 233
12.3.3 实战演练——实现一个实时显示检索框效果 234
12.3.4 实战演练——设置检索框的背景颜色 236
12.3.5 实战演练——在检索框中添加一个书签按钮 237
第13章 导航控制和弹出框处理 241
13.1 视图控制器(UIViewController) 241
13.1.1 UIViewController基础 241
13.1.2 实战演练——实现不同界面之间的跳转处理 241
13.2 导航控制器(UINavigationController) 244
13.2.1 导航栏、导航项和栏按钮项 244
13.2.2 UINavigationController详解 245
13.2.3 在故事板中使用导航控制器 248
13.2.4 使用UINavigationController的流程 250
13.2.5 实战演练——实现不同视图的切换 250
13.3 选项卡栏控制器(UITabBarController) 255
13.3.1 选项卡栏和选项卡栏项 255
13.3.2 在选项卡栏控制器管理的场景之间共享数据 258
13.3.3 UITabBarController使用详解 258
13.3.4 实战演练——实现不同场景的切换 261
13.4 多场景故事板 265
13.4.1 多场景故事板基础 266
13.4.2 创建多场景项目 266
13.4.3 实战演练——使用第二个视图来编辑第一个视图中的信息 272
13.5 iPad弹出框 277
13.5.1 创建弹出框 278
13.5.2 创建弹出切换 278
13.5.3 手工显示弹出框 280
13.5.4 响应用户关闭弹出框 280
13.5.5 以编程方式创建并显示弹出框 281
13.5.6 实战演练——使用弹出框更新内容 283
13.6 分割视图控制器 286
13.6.1 分割视图控制器基础 287
13.6.2 使用表视图 288
第14章 图形、图像、图层和动画 296
14.1 图形处理 296
14.1.1 iOS的绘图机制 296
14.1.2 实战演练——在屏幕中绘制一个三角形 297
14.2 图像处理 300
14.2.1 实战演练——实现颜色选择器/调色板功能 300
14.2.2 实战演练——实现滑动颜色选择器/调色板功能 302
14.3 图层 306
14.3.1 图层基础 306
14.3.2 实战演练——在屏幕中实现3个重叠的矩形 307
14.3.3 实战演练——实现图层的变换 308
14.4 实现动画效果 312
14.4.1 UIImageView动画 312
14.4.2 视图动画UIView 313
14.4.3 CoreAnimation详解 317
14.4.4 实战演练——实现“烟花”效果 320
14.5 访问声音服务 322
14.5.1 声音服务基础 323
14.5.2 实战演练——播放声音文件 324
14.6 提醒和震动 329
14.6.1 播放提醒音 330
14.6.2 实战演练——实现iOS的提醒功能 330
第15章 定位处理 342
15.1 Core Location框架 342
15.1.1 Core Location基础 342
15.1.2 使用流程 342
15.2 获取位置 345
15.2.1 位置管理器委托 345
15.2.2 处理定位错误 346
15.2.3 位置精度和更新过滤器 347
15.2.4 获取航向 348
15.3 地图功能 349
15.3.1 Map Kit基础 349
15.3.2 为地图添加标注 350
15.4 实战演练——创建一个支持定位的应用程序 351
15.4.1 创建项目 352
15.4.2 设计视图 353
15.4.3 创建并连接输出口 354
15.4.4 实现应用程序逻辑 355
15.4.5 生成应用程序 357
第16章 和互联网接轨 359
16.1 UIWebView控件 359
16.2 实战演练——显示指定的网页 359
16.3 实战演练——控制屏幕中的网页 361
16.4 实战演练——加载显示PDF、Word和JPEG图片 364
16.5 实战演练——在网页中加载HTML代码 366
16.6 实战演练——在网页中实现触摸处理 368
第17章 多点触摸和手势识别 374
17.1 多点触摸和手势识别基础 374
17.2 触摸处理 374
17.2.1 触摸事件和视图 375
17.2.2 实战演练——触摸屏幕中的按钮 379
17.2.3 实战演练——同时滑动屏幕中的两个滑块 381
17.3 手势处理 382
17.3.1 手势处理基础 382
17.3.2 实战演练——实现一个手势识别器 386
第18章 地址簿、邮件和Twitter 396
18.1 地址簿 396
18.1.1 框架Address Book UI 396
18.1.2 框架Address Book 397
18.2 电子邮件 398
18.3 使用Twitter发送推特信息 399
18.4 实战演练——联合使用地址簿、电子邮件、Twitter和地图 400
18 4.1 创建项目 401
18.4.2 设计界面 401
18.4.3 创建并连接输出口和操作 402
18.4.4 实现地址簿逻辑 403
18.4.5 实现地图逻辑 405
18.4.6 实现电子邮件逻辑 407
18.4.7 实现Twitter逻辑 408
18.4.8 生成应用程序 409
第19章 读写应用程序数据 411
19.1 iOS应用程序和数据存储 411
19.2 用户默认设置 411
19.3 设置束 412
19.3.1 设置束基础 413
19.3.2 实战演练——通过隐式首选项实现一个手电筒程序 414
19.4 直接访问文件系统 418
19.4.1 应用程序数据的存储位置 419
19.4.2 获取文件路径 419
19.4.3 读写数据 420
19.4.4 读取和写入文件 421
19.4.5 通过plist文件存取文件 422
19.4.6 保存和读取文件 424
19.4.7 文件共享和文件类型 425
19.4.8 传递一个文档 425
19.4.9 实战演练——实现一个收集用户信息、的程序 426
19.5 iCloud存储 431
19.6 使用SQLite3存储和读取数据 432
第20章 开发通用的项目程序 439
20.1 开发通用应用程序 439
20.1.1 图标文件 440
20.1.2 启动图像 441
20.2 实战演练——使用通用程序模板创建通用应用程序 441
20.2.1 创建项目 441
20.2.2 设计界面 442
20.2.3 创建并连接输出口 443
20.2.4 实现应用程序逻辑 443
20.3 实战演练——使用视图控制器 444
20.3.1 创建项目 445
20.3.2 设计界面 446
20.3.3 创建并连接输出口 446
20.3.4 实现应用程序逻辑 447
20.3.5 生成应用程序 447
20.4 实战演练——使用多个目标 448
20.4.1 将iPhone目标转换为iPad目标 448
20.4.2 将iPad目标转换为iPhone目标 449
20.5 实战演练——创建基于“主-从”视图的应用程序 449
20.5.1 创建项目 450
20.5.2 调整iPad界面 451
20.5.3 调整iPhone界面 452
20.5.4 实现应用程序数据源 453
20.5.5 实现主视图控制器 456
20.5.6 实现细节视图控制器 458
20.5.7 生成应用程序 459
第21章 公交路线查询系统 461
21.1 系统介绍 461
21.2 系统主界面 461
21.2.1 线路查询视图 462
21.2.2 线路详情模块 467
21.2.3 线路中某站详情 472
21.3 站站查询 478
21.3.1 站站查询主视图 479
21.3.2 站站查询详情视图 490
21.4 收藏历史 493
21.5 地图信息 501
21.5.1 地图主视图 501
21.5.2 Web地图视图 504
21.6 系统设置 506
21.6.1 主视图 506
21.6.2 当前城市视图 514
21.6.3 数据下载视图 518