《iOS 11开发指南》PDF下载

  • 购买积分:20 如何计算积分?
  • 作  者:管蕾编著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2018
  • ISBN:9787115475602
  • 页数:714 页
图书介绍:本书不但详细讲解了使用Objective-C语言开发iOS11应用程序的方法,而且还讲解了使用全新语言Swift开发iOS11应用程序的方法。全面讲解了iOS11的新特性、新技术,几乎涵盖了iOS 11所有的内容。无论是智能家居、健康应用、苹果手表、游戏开发等领域,在本书中都将能找到解决方案。并且在讲解过程中,细致讲解了每一个知识点的具体原理和具体用法。

第1章 iOS开发入门 1

1.1 iOS系统介绍 1

1.1.1 iOS发展史 1

1.1.2 全新的版本iOS 11 1

1.2 开始iOS 11开发之旅 2

1.3 工欲善其事,必先利其器——搭建开发环境 3

1.3.1 Xcode介绍 4

1.3.2 下载并安装Xcode 9 4

1.3.3 创建iOS 11项目并启动模拟器 6

1.3.4 打开一个现有的iOS 11项目 8

1.4 iOS 11中的常用开发框架 8

1.4.1 Foundation框架简介 8

1.4.2 Cocoa框架简介 10

1.4.3 iOS程序框架 10

第2章 使用Xcode开发环境详解 12

2.1 基本面板介绍 12

2.1.1 调试工具栏 12

2.1.2 导航面板介绍 13

2.1.3 检查器面板 15

2.2 Xcode 9的基本操作 16

2.2.1 改变公司名称 16

2.2.2 通过搜索框缩小文件范围 16

2.2.3 格式化代码 17

2.2.4 代码缩进和自动完成 17

2.2.5 文件内查找和替代 18

2.2.6 快速定位到代码行 19

2.2.7 快速打开文件 19

2.2.8 自定义导航条 20

2.2.9 使用Xcode帮助 21

2.2.10 调试代码 21

2.3 使用Xcode 9帮助系统 22

第3章 Objective-C语言基础 24

3.1 最耀眼的新星 24

3.1.1 究竟何为Objective-C 24

3.1.2 为什么选择Objective-C 24

3.2 Objective-C的优点及缺点 25

3.3 一个简单的例子 26

3.3.1 使用Xcode编辑代码 26

3.3.2 基本元素介绍 27

3.4 数据类型和常量 31

3.4.1 int类型 32

3.4.2 float类型 33

3.4.3 double类型 33

3.4.4 char类型 34

3.4.5 字符常量 35

3.4.6 id类型 36

3.4.7 限定词 37

3.4.8 总结基本数据类型 39

3.5 字符串 39

3.6 算术表达式 40

3.6.1 运算符的优先级 40

3.6.2 整数运算和一元负号运算符 41

3.6.3 模运算符 42

3.6.4 整型值和浮点值的相互转换 43

3.6.5 类型转换运算符 44

3.7 表达式 44

3.7.1 常量表达式 44

3.7.2 条件运算符 45

3.7.3 sizeof运算符 45

3.7.4 关系运算符 46

3.7.5 强制类型转换运算符 46

3.8 位运算符 47

3.8.1 按位与运算符 47

3.8.2 按位或运算符 48

3.8.3 按位异或运算符 48

3.8.4 一次求反运算符 49

3.8.5 向左移位运算符 50

3.8.6 向右移位运算符 50

3.8.7 总结Objective-C的运算符 51

第4章 Swift语言基础 52

4.1 Swift概述 52

4.1.1 Swift的创造者 52

4.1.2 Swift的优势 52

4.1.3 最新的Swift 4.0 53

4.2 数据类型和常量 54

4.2.1 int类型 54

4.2.2 float类型 55

4.2.3 double类型 55

4.2.4 char类型 55

4.2.5 字符常量 55

4.3 变量和常量 56

4.3.1 常量详解 56

4.3.2 变量详解 56

4.4 字符串和字符 57

4.4.1 字符串字面量 57

4.4.2 初始化空字符串 58

4.4.3 字符串可变性 58

4.4.4 值类型字符串 58

4.4.5 计算字符数量 59

4.4.6 连接字符串和字符 59

4.4.7 字符串插值 60

4.4.8 比较字符串 60

4.4.9 Unicode 61

4.5 流程控制 63

4.5.1 for循环(1) 63

4.5.2 for循环(2) 64

4.5.3 while循环 65

4.6 条件语句 66

4.6.1 if语句 66

4.6.2 switch语句 67

4.7 函数 68

4.7.1 函数的声明与调用 68

4.7.2 函数的参数和返回值 69

4.8 实战演练——使用Xcode创建Swift程序 70

第5章 Cocoa Touch框架 72

5.1 Cocoa Touch基础 72

5.1.1 Cocoa Touch概述 72

5.1.2 Cocoa Touch中的框架 73

5.1.3 Cocoa Touch的优势 73

5.2 iPhone的技术层 73

5.2.1 Cocoa Touch层 73

5.2.2 多媒体层 76

5.2.3 核心服务层 77

5.2.4 核心OS层 78

5.3 Cocoa Touch中的框架 78

5.3.1 Core Animation(图形处理)框架 78

5.3.2 Core Audio(音频处理)框架 79

5.3.3 Core Data(数据处理)框架 79

5.4 Cocoa中的类 80

5.4.1 核心类 81

5.4.2 数据类型类 82

5.4.3 UI界面类 83

5.5 国际化 85

第6章 Xcode Interface Builder界面开发 86

6.1 Interface Builder基础 86

6.2 和Interface Builder密切相关的库面板 88

6.3 Interface Builder采用的方法 88

6.4 Interface Builder中的故事板——Storyboarding 89

6.4.1 推出的背景 89

6.4.2 故事板的文档大纲 90

6.4.3 文档大纲的区域对象 91

6.5 创建一个界面 91

6.5.1 对象库 91

6.5.2 将对象加入到视图中 92

6.5.3 使用IB布局工具 93

6.6 定制界面外观 95

6.6.1 使用属性检查器 95

6.6.2 设置辅助功能属性 95

6.6.3 测试界面 96

6.7 iOS 11控件的属性 96

6.8 实战演练——将设计界面连接到代码(双语实现:Objective-C版) 97

6.8.1 打开项目 97

6.8.2 输出口和操作 98

6.8.3 创建到输出口的连接 98

6.8.4 创建到操作的连接 100

6.9 实战演练——将设计界面连接到代码(双语实现:Swift版) 101

6.10 实战演练——纯代码实现UI设计 102

第7章 使用Xcode编写MVC程序 104

7.1 MVC模式基础 104

7.2 Xcode中的MVC 105

7.2.1 原理 105

7.2.2 模板就是给予MVC的 105

7.3 在Xcode中实现MVC 106

7.3.1 视图 106

7.3.2 视图控制器 106

7.4 数据模型 108

7.5 实战演练——使用模板Single View Application创建MVC程序(双语实现:Objective-C版) 109

7.5.1 创建项目 109

7.5.2 规划变量和连接 110

7.5.3 设计界面 112

7.5.4 创建并连接输出口和操作 113

7.5.5 实现应用程序逻辑 114

7.5.6 生成应用程序 115

7.6 实战演练——使用模板Single View Application创建MVC程序(双语实现:Swift版) 115

第8章 文本框和文本视图 116

8.1 文本框(UITextField) 116

8.1.1 文本框基础 116

8.1.2 实战演练——控制是否显示TextField中信息 116

8.1.3 实战演练——实现用户登录框界面 118

8.1.4 实战演练——限制输入文本的长度 119

8.1.5 实战演练——实现一个UITextField控件(Swift版) 120

8.2 文本视图(UITextView) 121

8.2.1 文本视图基础 121

8.2.2 实战演练——拖动输入的文本 122

8.2.3 实战演练——自定义设置文字的行间距 122

8.2.4 实战演练——自定义UITextView控件的样式 123

8.2.5 实战演练——在指定的区域中输入文本(Swift版) 125

8.2.6 实战演练——通过文本提示被单击的按钮(双语实现:Objective-C版) 126

8.2.7 实战演练——在屏幕中显示被单击的按钮(双语实现:Swift版) 126

第9章 按钮和标签 127

9.1 标签(UILabel) 127

9.1.1 标签(UILabel)的属性 127

9.1.2 实战演练——使用UILabel显示一段文本 127

9.1.3 实战演练——为文字分别添加上划线、下划线和中划线 129

9.1.4 实战演练——显示被触摸单词的字母 130

9.1.5 实战演练——显示一个指定样式的文本(Swift版) 130

9.2 按钮(UIButton) 131

9.2.1 按钮基础 132

9.2.2 实战演练——自定义设置按钮的图案 132

9.2.3 实战演练——实现了一个变换形状动画按钮 134

9.3 实战演练——联合使用文本框、文本视图和按钮(双语实现:Objective-C版) 135

9.3.1 创建项目 135

9.3.2 设计界面 136

9.3.3 创建并连接输出口和操作 140

9.3.4 实现按钮模板 141

9.3.5 隐藏键盘 142

9.3.6 实现应用程序逻辑 144

9.3.7 总结执行 145

9.4 实战演练——联合使用文本框、文本视图和按钮(双语实现:Swift版) 145

9.5 实战演练——自定义一个按钮(Swift版) 145

第10章 滑块、步进和图像 147

10.1 滑块控件(UISlider) 147

10.1.1 Slider控件的基本属性 147

10.1.2 实战演练——使用素材图片实现滑动条特效 148

10.1.3 实战演练——实现自动显示刻度的滑动条 149

10.1.4 实战演练——实现各种各样的滑块 150

10.1.5 实战演练——自定义实现UISlider控件功能(Swift版) 152

10.2 步进控件(UIStepper) 153

10.2.1 步进控件介绍 153

10.2.2 实战演练——自定义步进控件的样式 154

10.2.3 实战演练——设置指定样式的步进控件 155

10.2.4 实战演练——使用步进控件自动增减数字(Swift版) 156

10.3 图像视图控件(UIImageView) 157

10.3.1 UIImageView的常用操作 157

10.3.2 实战演练——实现图像的模糊效果 157

10.3.3 实战演练——滚动浏览图片 159

10.3.4 实战演练——实现一个图片浏览器 160

10.3.5 实战演练——使用UIImageView控件(Swift版) 162

第11章 开关控件和分段控件 163

11.1 开关控件(UISwitch) 163

11.1.1 开关控件基础 163

11.1.2 实战演练——改变UISwitch的文本和颜色 163

11.1.3 实战演练——显示具有开关状态的开关 164

11.1.4 实战演练——显示一个默认打开的UISwitch控件 165

11.1.5 实战演练——控制是否显示密码明文(Swift版) 165

11.2 分段控件(UISegmentedControl) 166

11.2.1 分段控件的属性和方法 167

11.2.2 实战演练——使用UISegmentedControl控件 168

11.2.3 实战演练——添加图标和文本 170

11.2.4 实战演练——使用分段控件控制背景颜色 171

11.2.5 实战演练——使用UISegmented Control控件(Swift版) 172

11.3 实战演练——联合使用开关控件和分段控件(双版实现:Objective-C版) 173

11.4 实战演练——联合使用开关控件和分段控件(双版实现:Swift版) 175

第12章 Web视图控件、可滚动视图控件和翻页控件 176

12.1 Web视图(UIWebView) 176

12.1.1 Web视图基础 176

12.1.2 实战演练——在UIWebView控件中调用JavaScript脚本 177

12.1.3 实战演练——使用滑动条动态改变字体的大小 178

12.1.4 实战演练——实现一个迷你浏览器工具 179

12.1.5 实战演练——使用UIWebView控件加载网页(Swift版) 181

12.2 可滚动的视图(UIScrollView) 182

12.2.1 UIScrollView的基本用法 182

12.2.2 实战演练——使用可滚动视图控件 183

12.2.3 实战演练——滑动隐藏状态栏 186

12.2.4 实战演练——使用UIScrollView控件(Swift版) 186

12.3 翻页控件(UIPageControl) 187

12.3.1 PageControll控件基础 187

12.3.2 实战演练——自定义UIPageControl控件的外观样式 188

12.3.3 实战演练——实现一个图片播放器 189

12.3.4 实战演练——实现一个图片浏览程序 191

12.3.5 实战演练——使用UIPageControl控件设置4个界面(Swift版) 191

12.4 实战演练——联合使用开关、分段控件和Web视图控件(双语实现:Objective-C版) 193

12.4.1 创建项目 194

12.4.2 设计界面 194

12.4.3 创建并连接输出口和操作 196

12.4.4 实现应用程序逻辑 197

12.4.5 调试运行 200

12.5 实战演练——联合使用开关、分段控件和Web视图控件(双语实现:Swift版) 200

第13章 提醒和操作表 201

13.1 UIAlertController基础 201

13.1.1 提醒视图 201

13.1.2 操作表基础 201

13.2 使用UIAlertController 201

13.2.1 一个简单的对话框例子 202

13.2.2 “警告”样式 203

13.2.3 文本对话框 203

13.2.4 上拉菜单 205

13.2.5 释放对话框控制器 207

13.3 实战演练 207

13.3.1 实战演练——实现一个自定义操作表视图 207

13.3.2 实战演练——分别自定义实现提醒表视图和操作表视图 208

13.3.3 实战演练——自定义UIAlertController控件的外观 209

13.3.4 实战演练——实现一个提醒框效果(Swift版) 211

第14章 工具栏、日期选择器 212

14.1 工具栏(UIToolbar) 212

14.1.1 工具栏基础 212

14.1.2 实战演练——联合使用UIToolBar和UIView 213

14.1.3 实战演练——自定义UIToolBar控件的颜色和样式 214

14.1.4 实战演练——创建一个带有图标按钮的工具栏 215

14.1.5 实战演练——使用UIToolbar制作一个网页浏览器(Swift版) 216

14.2 选择器视图(UIPickerView) 218

14.2.1 选择器视图基础 218

14.2.2 实战演练——实现两个UIPickerView控件间的数据依赖 219

14.2.3 实战演练——自定义一个选择器(双语实现:Objective-C实现) 222

14.2.4 实战演练——自定义一个选择器(双语实现:Swift版) 229

14.2.5 实战演练——实现一个单列选择器 229

14.2.6 实战演练——实现一个“星期”选择框 230

14.3 日期选择控件(UIDatePicker) 231

14.3.1 UIDatePicker基础 231

14.3.2 实战演练——使用UIDatePicker控件(Swift版) 233

14.3.3 实战演练——实现一个日期选择器 234

14.3.4 实战演练——使用日期选择器自动选择一个时间 240

第15章 表视图(UITable) 242

15.1 表视图基础 242

15.1.1 表视图的外观 242

15.1.2 表单元格 242

15.1.3 添加表视图 242

15.1.4 UITableView详解 244

15.2 实战演练 246

15.2.1 实战演练——自定义UITableViewCell 246

15.2.2 实战演练——在表视图中动态操作单元格(Swift版) 249

15.2.3 实战演练——拆分表视图(双语实现:Objctive-C版) 251

15.2.4 实战演练——拆分表视图(双语实现:Swift版) 252

第16章 活动指示器、进度条和检索条 253

16.1 活动指示器(UIActivityIndicatorView) 253

16.1.1 活动指示器基础 253

16.1.2 实战演练——自定义UIActivity IndicatorView控件的样式 253

16.1.3 实战演练——自定义活动指示器的显示样式 255

16.1.4 实战演练——实现不同外观的活动指示器效果 258

16.1.5 实战演练——使用UIActivity Indicator View控件(Swift版) 259

16.2 进度条(UIProgressView) 260

16.2.1 进度条基础 261

16.2.2 实战演练——自定义进度条的外观样式 261

16.2.3 实战演练——实现多个具有动态条纹背景的进度条 261

16.2.4 实战演练——自定义一个指定外观样式的进度条 264

16.2.5 实战演练——实现自定义进度条效果(Swift版) 268

16.3 检索条(UISearchBar) 269

16.3.1 检索条基础 269

16.3.2 实战演练——在查找信息输入关键字时实现自动提示功能 270

16.3.3 实战演练——实现文字输入的自动填充和自动提示功能 273

16.3.4 实战演练——使用检索控件快速搜索信息 274

16.3.5 实战演练——使用UISearchBar控件(Swift版) 277

16.3.6 实战演练——在表视图中实现信息检索(双语实现:Objective-C版) 278

16.3.7 实战演练——在表视图中实现信息检索(双语实现:Swift版) 281

第17章 UIView详解 282

17.1 UIView基础 282

17.1.1 UIView的结构 282

17.1.2 视图架构 284

17.1.3 视图层次和子视图管理 284

17.1.4 视图绘制周期 285

17.1.5 UIView的常见应用 285

17.2 实战演练 286

17.2.1 实战演练——给任意UIView视图四条边框加上阴影 286

17.2.2 实战演练——给UIView加上各种圆角、边框效果 287

17.2.3 实战演练——使用UIView控件实现弹出式动画表单效果 288

17.2.4 实战演练——创建一个滚动图片浏览器(Swift版) 289

17.2.5 实战演练——创建一个产品展示列表(双语实现:Objctive-C版) 290

17.2.6 实战演练——创建一个产品展示列表(双语实现:Swift版) 291

第18章 视图控制器 292

18.1 导航控制器(UIViewController)基础 292

18.1.1 UIViewController的常用属性和方法 292

18.1.2 实战演练——实现可以移动切换的视图效果 293

18.1.3 实战演练——实现手动旋转屏幕的效果 293

18.2 使用UINavigationController 294

18.2.1 UINavigationController详解 295

18.2.2 实战演练——实现一个界面导航条功能 296

18.2.3 实战演练——创建主从关系的“主-子”视图(Swift版) 299

18.2.4 实战演练——使用导航控制器展现3个场景(双语实现:Objective-C版) 300

18.2.5 实战演练——使用导航控制器展现3个场景(双语实现:Swift版) 303

18.3 选项卡栏控制器 304

18.3.1 选项卡栏和选项卡栏项 304

18.3.2 实战演练——使用选项卡栏控制器构建3个场景 306

18.3.3 实战演练——使用动态单元格定制表格行 310

18.3.4 实战演练——开发一个界面选择控制器(Swift版) 311

第19章 实现多场景和弹出框 313

19.1 多场景故事板 313

19.1.1 多场景故事板基础 313

19.1.2 创建多场景项目 314

19.1.3 实战演练——实现多个视图之间的切换 317

19.1.4 实战演练——使用第二个视图来编辑第一个视图中的信息(双语实现:Objective-C版) 320

19.1.5 实战演练——使用第二个视图来编辑第一个视图中的信息(双语实现:Swift版) 323

第20章 UIColletionView和UIVisualEffectView控件 324

20.1 UICollectionView控件详解 324

20.1.1 UICollectionView的构成 324

20.1.2 实现一个简单的UICollectionView 325

20.1.3 自定义的UICollectionViewLayout 327

20.1.4 实战演练——使用UICollectionView控件实现网格效果 328

20.1.5 实战演练——实现大小不相同的网格效果 331

20.1.6 实战演练——实现不同颜色方块的布局效果(Swift版) 333

20.2 UIVisualEffectView控件详解 333

20.2.1 UIVisualEffectView基础 334

20.2.2 使用Visual Effect View控件实现模糊特效 335

20.2.3 使用Visual Effect View实现Vibrancy效果 336

20.2.4 实战演练——在屏幕中实现模糊效果 337

20.2.5 实战演练——在屏幕中实现遮罩效果 338

20.2.6 实战演练——编码实现指定图像的模糊效果(Swift版) 339

第21章 iPad弹出框和分割视图控制器 341

21.1 iPad弹出框控制器(UIPopoverPresentationController) 341

21.1.1 创建弹出框 341

21.1.2 创建弹出切换 341

21.1.3 实战演练——弹出模态视图 342

21.2 探索分割视图控制器 343

21.2.1 分割视图控制器基础 343

21.2.2 实战演练——使用表视图(双语实现:Objective-C版) 345

21.2.3 实战演练——使用表视图(双语实现:Swift版) 349

21.2.4 实战演练——创建基于主从关系的分割视图(Swift版本) 350

第22章 界面旋转、大小和全屏处理 352

22.1 启用界面旋转 352

22.1.1 界面旋转基础 352

22.1.2 实战演练——实现界面自适应(Swift版) 353

22.1.3 实战演练——设置界面实现自适应(双语实现:Objective-C版) 354

22.1.4 实战演练——设置界面实现自适应(双语实现:Swift版) 354

22.2 设计可旋转和可调整大小的界面 355

22.2.1 自动旋转和自动调整大小 355

22.2.2 调整框架 355

22.2.3 切换视图 355

22.2.4 实战演练——使用Interface Builder创建可旋转和调整大小的界面 355

22.2.5 实战演练——在旋转时调整控件 357

22.2.6 实战演练——旋转时切换视图 360

22.2.7 实战演练——实现屏幕视图的自动切换(Swift版) 363

第23章 图形、图像、图层和动画 364

23.1 图形处理 364

23.1.1 iOS的绘图机制 364

23.1.2 实战演练——在屏幕中绘制一个三角形 365

23.1.3 实战演练——使用CoreGraphic实现绘图操作 366

23.2 图像处理 368

23.2.1 实战演练——实现颜色选择器/调色板功能 368

23.2.2 实战演练——在屏幕中绘制一个图像 369

23.3 图层 369

23.3.1 视图和图层 369

23.3.2 实战演练——实现图片、文字以及翻转效果 370

23.3.3 实战演练——滑动展示不同的图片 371

23.3.4 实战演练——演示CALayers图层的用法(Swift版) 371

23.4 实现动画 372

23.4.1 UIImageView动画 372

23.4.2 视图动画UIView 372

23.4.3 Core Animation详解 376

23.4.4 实战演练——实现UI View分类动画效果 376

23.4.5 实战演练——动画样式显示电量使用情况 378

23.4.6 实战演练——图形图像的人脸检测处理(Swift版) 381

23.4.7 实战演练——联合使用图像动画、滑块和步进控件(双语实现:Objective-C版) 382

23.4.8 实战演练——联合使用图像动画、滑块和步进控件(双语实现:Swift版) 390

第24章 多媒体开发 391

24.1 使用AudioToolbox框架 391

24.1.1 声音服务基础 391

24.1.2 实战演练——播放指定的声音文件 392

24.1.3 实战演练——播放任意位置的音频 393

24.2 提醒和振动 393

24.2.1 播放提醒音 394

24.2.2 实战演练——实现两种类型的振动效果(Swift版) 394

24.2.3 实战演练——实用iOS的提醒功能 395

24.3 AV Foundation框架 401

24.3.1 准备工作 402

24.3.2 使用AV音频播放器 402

24.3.3 实战演练——使用AV Foundation框架播放视频 402

24.3.4 实战演练——使用AVAudioPlayer播放和暂停指定的MP3播放(Swift版) 403

24.3.5 实战演练——使用AVKit框架播放列表中的视频 404

24.3.6 实战演练——使用AVKit框架播放本地视频 405

24.3.7 实战演练——使用AVKit框架播放网络视频 406

24.4 图像选择器(UIImagePickerController) 407

24.4.1 使用图像选择器 407

24.4.2 实战演练——获取照片库的图片 407

第25章 分屏多任务 410

25.1 分屏多任务基础 410

25.1.1 分屏多任务的开发环境 410

25.1.2 Slide Over和Split View基础 411

25.1.3 画中画 412

25.2 实战演练 413

25.2.1 实战演练——使用SlideOver多任务(Swift版) 413

25.2.2 实战演练——使用SplitView多任务(Swift版) 415

25.2.3 实战演练——开发一个分割多视图浏览器(Swift版) 419

第26章 定位处理 422

26.1 iOS模拟器调试定位程序的方法 422

26.2 Core Location框架 423

26.2.1 Core Location基础 423

26.2.2 使用流程 423

26.2.3 实战演练——定位显示当前的位置信息(Swift版) 425

26.3 获取位置 428

26.3.1 位置管理器委托 429

26.3.2 获取航向 430

26.3.3 实战演练——定位当前的位置信息 431

26.4 加入地图功能 432

26.4.1 Map Kit基础 432

26.4.2 为地图添加标注 433

26.4.3 实战演练——在地图中定位当前的位置信息(Swift版) 434

26.4.4 实战演练——在地图中绘制导航线路 435

26.5 实战演练——创建一个支持定位的应用程序(双语实现:Objective-C版) 436

26.5.1 创建项目 437

26.5.2 设计视图 438

26.5.3 创建并连接输出口 438

26.5.4 实现应用程序逻辑 438

26.5.5 生成应用程序 440

26.6 实战演练——创建一个支持定位的应用程序(双语实现:Swift版) 440

26.7 实战演练——实现地图定位(双语实现:Objective-C版) 441

26.8 实战演练——实现地图定位(双语实现:Swift版) 442

第27章 读写应用程序数据 443

27.1 iOS应用程序和数据存储 443

27.2 用户默认设置 444

27.3 设置束 444

27.3.1 设置束基础 444

27.3.2 实战演练——通过隐式首选项实现一个手电筒程序(双语实现:Objective-C版) 445

27.3.3 实战演练——通过隐式首选项实现一个手电筒程序(双语实现:Swift版) 448

27.4 直接访问文件系统 448

27.4.1 应用程序数据的存储位置 449

27.4.2 获取文件路径 449

27.4.3 读写数据 450

27.4.4 读取和写入文件 450

27.4.5 通过plist文件存取文件 452

27.4.6 保存和读取文件 453

27.4.7 文件共享和文件类型 453

27.4.8 实战演练——实现一个用户信息收集器(双语实现:Objective-C版) 454

27.4.9 实战演练——实现一个用户信息收集器(双语实现:Swift版) 457

27.5 核心数据(Core Data) 458

27.5.1 Core Data基础 458

27.5.2 实战演练——使用CoreData动态添加、删除数据 459

27.6 互联网数据 460

27.6.1 XML和JSON 460

27.6.2 实战演练——使用JSON获取网站中的照片信息 463

第28章 触摸、手势识别和Force Touch 466

28.1 多点触摸和手势识别基础 466

28.2 触摸处理 466

28.2.1 触摸事件和视图 467

28.2.2 iOS中的手势操作 469

28.2.3 实战演练——触摸的方式移动视图 470

28.2.4 实战演练——触摸挪动彩色方块(Swift版) 470

28.3 手势处理 474

28.3.1 手势处理基础 474

28.3.2 实战演练——识别手势并移动屏幕中的方块(Swift版) 477

28.3.3 实战演练——实现一个手势识别器(双语实现:Objective-C版) 480

28.3.4 实战演练——实现一个手势识别器(双语实现:Swift版) 485

28.4 全新感应功能——Force Touch(3D Touch)技术 485

28.4.1 Force Touch介绍 486

28.4.2 Force Touch APIs介绍 486

28.4.3 实战演练——使用Force Touch 487

28.4.4 实战演练——启动Force Touch触控面板 489

28.4.5 实战演练——为应用程序添加3D Touch手势(Swift版) 489

第29章 和硬件之间的操作 491

29.1 加速计和陀螺仪 491

29.1.1 加速计基础 491

29.1.2 陀螺仪 493

29.1.3 实战演练——使用Motion传感器(Swift版) 494

29.1.4 实战演练——检测倾斜和旋转(双语实现:Objective-C版) 495

29.1.5 实战演练——检测倾斜和旋转(双语实现:Swift版) 499

29.2 访问朝向和运动数据 500

29.2.1 两种方法 500

29.2.2 实战演练——检测当前设备的朝向(双语实现:Objective-C版) 502

29.2.3 实战演练——检测当前设备的朝向(双语实现:Swift版) 503

第30章 地址簿、邮件、Twitter和短消息 504

30.1 Contacts Framework框架 504

30.1.1 Contacts框架的主要构成类 504

30.1.2 使用Contact框架 505

30.1.3 实战演练——使用Contacts框架获取通信录信息 505

30.2 Message UI电子邮件 507

30.2.1 Message UI基础 507

30.2.2 实战演练——使用Message UI发送邮件(Swift版) 508

30.3 使用Twitter发送推特信息 509

30.3.1 Twitter基础 509

30.3.2 实战演练——开发一个Twitter客户端(Swift版) 509

30.4 实战演练——联合使用地址簿、电子邮件、Twitter和地图(双语实现:Objective-C版) 511

30.4.1 创建项目 511

30.4.2 设计界面 512

30.4.3 创建并连接输出口和操作 512

30.4.4 实现通信录逻辑 513

30.4.5 实现地图逻辑 513

30.4.6 实现电子邮件逻辑 514

30.4.7 实现Twitter逻辑 514

30.4.8 调试运行 514

30.5 实战演练——联合使用地址簿、电子邮件、Twitter和地图(双语实现:Swift版) 515

30.6 使用Messages.framework框架 515

30.6.1 Messages.framework框架介绍 515

30.6.2 实战演练——调用并使用Messages.framework框架(Swift版) 515

第31章 开发通用的项目程序 517

31.1 开发通用应用程序 517

31.1.1 在iOS 6中开发通用应用程序 517

31.1.2 在iOS 6+中开发通用应用程序 518

31.1.3 图标文件 524

31.1.4 启动图像 524

31.2 实战演练——使用通用程序模板创建通用应用程序(双语实现:Objective-C版) 524

31.2.1 创建项目 525

31.2.2 设计界面 525

31.2.3 创建并连接输出口 526

31.2.4 实现应用程序逻辑 526

31.3 实战演练——使用通用程序模板创建通用应用程序(双语实现:Swift版) 527

31.4 实战演练——使用视图控制器 527

31.4.1 创建项目 527

31.4.2 设计界面 528

31.4.3 创建并连接输出口 528

31.4.4 实现应用程序逻辑 528

31.4.5 生成应用程序 529

31.5 实战演练——使用多个目标 529

31.5.1 将iPhone目标转换为iPad目标 529

31.5.2 将iPad目标转换为iPhone目标 530

31.6 实战演练——创建基于“主—从”视图的应用程序 530

31.6.1 创建项目 530

31.6.2 调整iPad界面 531

31.6.3 调整iPhone界面 532

31.6.4 实现应用程序数据源 533

31.6.5 实现主视图控制器 535

31.6.6 实现细节视图控制器 536

31.6.7 调试运行 537

第32章 推服务和多线程 538

32.1 推服务 538

32.1.1 推服务介绍 538

32.1.2 推服务的机制 539

32.1.3 iOS中PushNotificationIOS远程推送的主要方法 539

32.1.4 在iOS中实现远程推送通知的步骤 540

32.1.5 实战演练——在iOS系统中发送3种形式的通知 543

32.2 多线程 545

32.2.1 多线程基础 545

32.2.2 iOS中的多线程 547

32.2.3 线程的同步与锁 551

32.2.4 线程的交互 552

32.3 ARC机制 553

32.3.1 ARC概述 553

32.3.2 ARC中的新规则 554

32.4 实战演练——实现后台多线程处理(双语实现:Objective-C版) 554

32.5 实战演练——实现后台多线程处理(双语实现:Swift版) 556

第33章 Touch ID详解 557

33.1 开发Touch ID应用程序 557

33.1.1 Touch ID的官方资料 557

33.1.2 开发Touch ID应用程序的步骤 558

33.2 实战演练——使用Touch ID认证 559

33.3 实战演练——使用Touch ID密码和指纹认证 560

33.4 实战演练——Touch ID认证的综合演练 564

第34章 使用CocoaPods依赖管理 567

34.1 使用CocoaPods基础 567

34.2 安装CocoaPods 567

34.2.1 基本安装 567

34.2.2 快速安装 568

34.3 使用CocoaPods 568

34.3.1 在自己的项目中使用CocoaPods 568

34.3.2 为自己的项目创建podspec文件 570

34.3.3 生成第三方库的帮助文档 571

34.4 实战演练——打开一个用CocoaPods管理的开源项目 571

第35章 使用扩展(Extension) 574

35.1 扩展(Extension)基础 574

35.1.1 扩展的生命周期 574

35.1.2 扩展和容器应用的交互 575

35.2 实战演练——使用Photo Editing Extension(照片扩展) 575

35.3 实战演练——使用TodayExtension(今日提醒扩展) 581

35.4 实战演练——使用Action Extension翻译英文 583

35.5 实战演练——使用Share Extension扩展实现分享功能 586

第36章 游戏开发 592

36.1 Sprite Kit框架基础 592

36.1.1 Sprite Kit的优点和缺点 592

36.1.2 Sprite Kit、Cocos2D、Cocos2D-X和Unity的选择 592

36.2 实战演练——开发一个Sprite Kit游戏程序 593

36.3 实战演练——开发一个射击游戏 601

第37章 watchOS 4智能手表开发 607

37.1 Apple Watch介绍 607

37.2 WatchKit开发详解 608

37.2.1 搭建WatchKit开发环境 608

37.2.2 WatchKit架构 609

37.2.3 WatchKit布局 610

37.2.4 Glances和Notifications(快速预览信息) 610

37.2.5 Watch App的生命周期 611

37.3 开发Apple Watch应用程序 612

37.3.1 创建Watch应用 612

37.3.2 创建Glance界面 612

37.3.3 自定义通知界面 612

37.3.4 配置Xcode项目 613

37.4 实战演练——实现AppleWatch垂直列表界面布局 615

37.5 实战演练——演示AppleWatch的日历事件 616

37.6 实战演练——在手表中控制小球的移动 620

37.7 实战演练——实现一个倒计时器 621

第38章 HealthKit健康应用开发 623

38.1 HealthKit基础 623

38.1.1 HealthKit介绍 623

38.1.2 市面中的HealthKit应用现状 623

38.1.3 接入HealthKit的好处 624

38.2 HealthKit开发基础 624

38.2.1 HealthKit开发要求 624

38.2.2 HealthKit开发思路 625

38.3 实战演练——读写HealthKit数据信息 626

38.4 实战演练——心率检测(Swift版) 626

38.5 实战演练——获取行走的步数 629

38.6 实战演练——获取步数、跑步距离、体重和身高(Swift版) 630

第39章 在程序中加入Siri功能 632

39.1 Siri基础 632

39.1.1 iOS中的Siri 632

39.1.2 HomneKit中的Siri指令 632

39.2 在iOS应用程序中使用Siri 633

39.2.1 iOS对生态整合与Extension开发的努力 633

39.2.2 Siri功能将以Extension扩展的形式存在 633

39.2.3 创建Intents Extension 634

39.3 实战演练——在iOS程序中使用Siri 638

39.4 实战演练——在支付程序中使用Siri(Swift版) 641

第40章 开发tvOS程序 645

40.1 tvOS开发基础 645

40.1.1 tvOS系统介绍 645

40.1.2 tvOS开发方式介绍 645

40.1.3 打开遥控器的模拟器 646

40.2 使用Custom App方式 646

40.2.1 Custom App方式介绍 646

40.2.2 实战演练——开发一个简单的按钮响应程序(Swift版) 646

40.2.3 实战演练——开发一个猜谜游戏(Swift版) 647

40.2.4 实战演练——在tvOS中使用表视图(Swift版) 649

40.3 使用TVML Apps方式 650

40.3.1 使用TVML Apps方式开发 651

40.3.2 实战演练——开发一个可响应的tvOS程序(Swift版) 659

40.3.3 实战演练——电影播放列表(Swift版) 663

第41章 使用Apple Pay 665

41.1 Apple Pay介绍 665

41.2 Apple Pay开发基础 665

41.2.1 Apple Pay支付流程 665

41.2.2 配置开发环境 666

41.2.3 创建支付请求 667

41.2.4 授权支付 669

41.2.5 处理支付 671

41.3 实战演练——Apple Pay接入应用程序 671

41.3.1 准备工作 671

41.3.2 具体实现 672

41.4 实战演练——使用图标接入Apple Pay 676

41.5 实战演练——使用图标接入Apple Pay(Swift版) 678

第42章 开发AR虚拟现实程序 681

42.1 虚拟现实和增强现实 681

42.2 使用ARKit 681

42.2.1 ARKit框架基础 681

42.2.2 ARKit与SceneKit的关系 682

42.2.3 ARKit的工作原理 682

42.3 实战演练——自定义实现飞机飞行场景的AR效果 683

42.3.1 准备工作 683

42.3.2 具体实现 684

42.4 实战演练——实现3种AR特效捕捉功能 686

42.4.1 实现水平捕捉功能 686

42.4.2 实现飞机随镜头飞行效果 688

42.4.3 实现环绕飞行效果 688

42.5 实战演练——实现5种AR特效(Swift版) 689

第43章 tvOS电影库系统 695

43.1 tvOS电影库系统介绍 695

43.2 系统介绍 695

43.3 使用Objective-C实现 697

43.4 使用Swift实现 703

43.5 系统扩展——优酷和土豆视频 703

第44章 分屏多视图播放器 704

44.1 分屏多视图系统介绍 704

44.2 创建工程 704

44.3 分屏具体实现 705

44.3.1 实现主视图界面 705

44.3.2 显示某个视频的基本信息 708

44.3.3 播放视频 709

44.3.4 播放网页嵌入式视频 711