《清华开发者书库 iOS实战 入门与提高卷 Swift版》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:关东升著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2015
  • ISBN:9787302405948
  • 页数:469 页
图书介绍:本书共分为12章,系统介绍了iOS开发的理论与实践。内容包括UIView与控件、iOS常用设计模式、视图控制器与导航模式、iPhone与iPad应用开发的差异、iOS分层架构设计、基于测试驱动的iOS开发等内容。

第1章 开始 1

1.1 iOS概述 1

1.1.1 iOS介绍 1

1.1.2 iOS 8新特性 1

1.2 开发环境及开发工具 2

1.3 本书约定 4

1.3.1 实例代码约定 4

1.3.2 图示约定 7

1.3.3 方法命名约定 9

1.3.4 构造器命名约定 11

1.4 创建He11oiOS工程 11

1.4.1 创建工程 12

1.4.2 Xcode中的iOS工程模板 16

1.4.3 应用剖析 17

1.4.4 应用生命周期 20

1.4.5 Xcode中的Project和Target 26

1.4.6 常用的产品属性 28

1.5 iOS API简介 30

1.5.1 API概述 30

1.5.2 如何使用API帮助 33

1.6 小结 34

第2章 Cocoa Touch MVC设计模式 36

2.1 MVC模式 36

2.1.1 MVC模式概述 36

2.1.2 Cocoa Touch MVC模式 37

2.2 视图控制器 40

2.2.1 视图控制器种类 40

2.2.2 视图控制器生命周期 40

2.3 视图与UIView 42

2.3.1 UIView继承层次结构 42

2.3.2 视图分类 44

2.3.3 应用界面的构建层次 45

2.4 界面构建技术 46

2.4.1 使用故事板 46

2.4.2 使用Xib文件 48

2.4.3 使用代码 52

2.5 小结 53

第3章 视图 54

3.1 控件与动作事件 54

3.1.1 按钮 55

3.1.2 定义动作事件 56

3.2 视图与输出口 59

3.2.1 标签 59

3.2.2 定义输出口 60

3.3 视图与委托协议 61

3.3.1 委托设计模式 61

3.3.2 实例:TextField委托协议 62

3.3.3 键盘的打开和关闭 66

3.3.4 键盘的种类 67

3.4 关闭和打开键盘通知 68

3.4.1 通知机制 68

3.4.2 实例:关闭和打开键盘 69

3.5 Web视图 70

3.5.1 UIWebView类 70

3.5.2 WKWebView类 74

3.6 警告框 76

3.7 操作表 78

3.8 工具栏 80

3.9 导航栏 84

3.10 小结 87

第4章 表视图 88

4.1 表视图中概念 88

4.1.1 表视图组成 88

4.1.2 表视图相关类 89

4.1.3 表视图分类 90

4.1.4 单元格组成和样式 91

4.1.5 数据源协议与委托协议 93

4.2 简单表视图 94

4.2.1 创建简单表视图 94

4.2.2 自定义单元格 100

4.2.3 添加搜索栏 104

4.3 分节表视图 111

4.3.1 添加索引 111

4.3.2 分组 114

4.4 删除和插入单元格 115

4.5 小结 123

第5章 界面布局与Auto Layout技术 124

5.1 iOS界面布局UI设计模式 124

5.2 静态表与表单布局 126

5.3 集合视图 131

5.3.1 集合视图介绍 131

5.3.2 实例:奥运会比赛项目 132

5.3.3 添加集合视图控制 133

5.3.4 添加集合视图单元格 136

5.3.5 数据源协议与委托协议 140

5.4 Auto Layout布局 141

5.4.1 Auto Layout约束管理 141

5.4.2 实例:Auto Layout布局 141

5.5 小结 147

第6章 屏幕适配与Size Class技术 148

6.1 iOS屏幕 148

6.1.1 iOS屏幕介绍 148

6.1.2 iOS的三种分辨率 149

6.1.3 判断iPhone屏幕尺寸 150

6.2 Size Class技术 152

6.2.1 Interface Builder中使用Size Class 152

6.2.2 Size Class的九宫格 152

6.2.3 实例:使用Size Class 154

6.3 小结 159

第7章 应用导航模式 160

7.1 导航概述 160

7.2 导航的“死胡同”——模态窗口 161

7.3 平铺导航 169

7.3.1 平铺导航概述 169

7.3.2 使用资源目录管理图片 171

7.3.3 屏幕滚动视图重要的属性 174

7.3.4 分屏导航实现 176

7.4 标签导航 179

7.4.1 标签导航实例 180

7.4.2 标签导航实现 180

7.5 树形结构导航 184

7.5.1 树形结构导航实例 184

7.5.2 树形结构导航实现 186

7.6 组合使用导航模式 193

7.6.1 组合导航实例 194

7.6.2 组合导航实现 194

7.7 小结 202

第8章 手势识别 203

8.1 手势种类 203

8.2 使用手势识别器 205

8.2.1 视图对象与手势识别 205

8.2.2 手势识别状态 206

8.2.3 检测Tap(单击) 206

8.2.4 检测Long Press(长按) 216

8.2.5 检测Pan(平移) 219

8.2.6 检测Swipe(滑动) 222

8.2.7 检测Rotation(旋转) 226

8.2.8 检测Pinch(手指的合拢和张开) 229

8.2.9 检测Screen Edge Pan(屏幕边缘平移) 232

8.3 触摸事件与手势识别 233

8.3.1 事件处理机制 234

8.3.2 响应者对象与响应链 234

8.3.3 触摸事件 236

8.3.4 手势识别 241

本章小结 244

第9章 项目实战——编写自定义控件PopupControl 245

9.1 选择器 245

9.1.1 日期选择器 245

9.1.2 普通选择器 248

9.1.3 数据源协议与委托协议 252

9.2 自己的选择器 253

9.2.1 自定义选择器控件需求 254

9.2.2 静态链接库 254

9.2.3 框架 255

9.2.4 使用工作空间 256

9.3 实现自定义选择器 256

9.3.1 创建框架工程 256

9.3.2 创建自定义选择器控制器 256

9.3.3 使用Xib构建界面 258

9.3.4 编写选择器控制器委托协议代码 260

9.3.5 编写选择器控制器代码 260

9.4 实现自定义日期选择器 263

9.4.1 创建自定义日期选择器控制器 263

9.4.2 使用Xib构建界面 263

9.4.3 编写日期选择器控制器委托协议代码 264

9.4.4 编写日期选择器控制器代码 264

9.5 测试自定义控件 265

9.5.1 创建工作空间 265

9.5.2 测试程序工程 266

9.6 小结 269

第10章 音频和视频多媒体开发 270

10.1 音频开发 270

10.1.1 音频文件简介 270

10.1.2 音频API简介 271

10.1.3 音频播放 272

10.1.4 音频录制 276

10.2 视频开发 282

10.2.1 视频文件简介 282

10.2.2 视频播放 283

10.2.3 视频录制 290

本章小结 293

第11章 图形图像开发 294

11.1 使用图像 295

11.1.1 创建图像 295

11.1.2 实例:从设备图片库选取或从照相机抓取 300

11.2 使用Core Image框架 304

11.2.1 Core Image框架API 304

11.2.2 滤镜 306

11.2.3 实例:旧色调和高斯模糊滤镜 306

本章小结 310

第12章 数据存储 311

12.1 数据存储概述 311

12.1.1 沙箱目录 311

12.1.2 数据存储方式 312

12.2 分层架构设计 313

12.2.1 低耦合企业级系统架构设计 313

12.2.2 iOS分层架构设计 314

12.3 实例:MyNotes应用 315

12.3.1 采用纯Swift语言实现 317

12.3.2 采用Swift调用Objective-C混合搭配实现 321

12.4 属性列表 322

12.5 使用SQLite数据库 327

12.5.1 SQLite数据类型 328

12.5.2 创建数据库 328

12.5.3 查询数据 331

12.5.4 修改数据 334

12.6 小结 337

第13章 网络数据交换格式 338

13.1 XML数据交换格式 339

13.1.1 XML文档结构 340

13.1.2 XML文档解析与框架性能 341

13.1.3 实例:MyNotes应用XML 342

13.2 JSON数据交换格式 352

13.2.1 JSON文档结构 352

13.2.2 JSON数据编码/解码与框架性能 353

13.2.3 实例:MyNotes应用JSON解码 354

13.3 小结 356

第14章 REST Web Service 357

14.1 REST Web Service通信技术基础 357

14.1.1 HTTP协议 358

14.1.2 HTTPS协议 358

14.2 使用苹果网络请求API 358

14.2.1 同步请求方法 359

14.2.2 异步请求方法 362

14.2.3 实例:MyNotes插入、修改和删除功能实现 364

14.3 实例:改善MyNotes用户体验 371

14.3.1 使用下拉刷新控件 371

14.3.2 使用网络活动指示器 374

14.4 使用网络请求框架MKNetworkKit 376

14.4.1 安装和配置MKNetworkKit框架 376

14.4.2 实现GET请求 378

14.4.3 实现POST请求 379

14.4.4 下载数据 380

14.4.5 上传数据 383

14.5 小结 385

第15章 Web Service网络通信架构设计 386

15.1 iOS Web Service网络通信应用的分层架构设计 386

15.2 基于委托模式实现 387

15.2.1 网络通信与委托模式 387

15.2.2 使用委托模式实现分层架构设计 387

15.2.3 类图 388

15.2.4 时序图 390

15.2.5 数据持久层重构 393

15.2.6 业务逻辑层的代码实现 397

15.2.7 表示层的代码实现 400

15.3 基于观察者模式的通知机制实现 406

15.3.1 观察者模式的通知机制回顾 406

15.3.2 异步网络通信中通知机制的分层架构设计 406

15.3.3 类图 407

15.3.4 时序图 409

15.3.5 数据持久层的重构 412

15.3.6 业务逻辑层的代码实现 414

15.3.7 表示层的代码实现 416

15.4 小结 421

第16章 iOS敏捷开发项目实战——价格线酒店预订iPhone客户端开发 422

16.1 应用分析与设计 422

16.1.1 应用概述 422

16.1.2 需求分析 422

16.1.3 原型设计 424

16.1.4 架构设计 424

16.2 iOS敏捷开发 426

16.2.1 敏捷开发宣言 426

16.2.2 iOS可以敏捷开发? 427

16.2.3 iOS敏捷开发一般过程 427

16.3 任务1:创建工作空间 429

16.4 任务2:业务逻辑层开发 430

16.4.1 迭代2.1编写搜索酒店的业务逻辑层类 431

16.4.2 迭代2.2编写房间查询业务逻辑类 436

16.5 任务3:表示层开发 442

16.5.1 迭代3.1根据原型设计初步设计故事板 442

16.5.2 迭代3.2搜索酒店模块 444

16.5.3 迭代3.2.1选择城市视图控制器 445

16.5.4 迭代3.2.2选择关键字视图控制器 448

16.5.5 迭代3.2.3选择价格和日期选择器 451

16.5.6 迭代3.2.4酒店搜索视图控制器 452

16.5.7 迭代3.2.5酒店搜索列表视图控制器 461

16.5.8 迭代3.3房间查询模块 467

16.6 小结 469