目录

目 录

前言

第1章 走进iOS

1.1 iOS简介

1.1.1 智能手机操作系统

1.1.2 iOS发展历史

1.1.3 iOS应用程序的设计理念

1.2 iOS系统的结构

1.2.1 Core OS

1.2.2 Core Services

1.2.3 Media

1.2.4 Cocoa Touch

1.3 iOS和macOS对比

1.4 学好iOS开发的建议

1.5 小结

第2章 创建第一个iOS应用

2.1 iOS开发环境

2.1.1 安装Xcode

2.1.2 认识Xcode

2.2 创建iOS应用——Hello World

2.2.1 创建一个Xcode项目

2.3 认识Xcode的面板

2.3.1 Navigators面板

2.3.2 Jump Bar跳转栏

2.4 运行iOS应用

2.4.1 使用iOS模拟器运行应用

2.4.2 使用iOS设备运行应用

2.5 Playground介绍

2.6 小结

第3章 Swift基础知识

3.1 Swift语言介绍

3.2 变量

3.2.1 声明和命名规则

3.3 常量

3.3.1 声明和命名规则

3.4 Swift基础数据类型

3.4.1 数字类型

3.4.2 布尔值(Bool)

3.4.3 字符串(String)

3.4.4 可空类型

3.5 注释

3.6 小结

3.7 知识拓展

第4章 控制语句

4.1 条件语句

4.1.1 if…else语句

4.1.2 比较运算符

4.1.3 逻辑运算符

4.1.4 三目运算符

4.1.5 else if 

4.2 switch语句

4.2.1 什么是switch

4.2.2 开始使用switch

4.2.3 switch的区间

4.2.4 switch值绑定

4.2.5 where子句

4.2.6 元组和模式匹配

4.2.7 switch与if…case

4.3 循环语句

4.3.1 for…in循环

4.3.2 类型推断

4.3.3 while循环

4.3.4 repeat…while循环

4.3.5 控制转移语句

4.4 小结

4.5 知识拓展

第5章 数据容器

5.1 数组

5.1.1 数组创建

5.1.2 数组的读取和修改

5.1.3 数组的遍历

5.1.4 数组的相等判断

5.1.5 不可变数组

5.2 字典

5.2.1 字典创建

5.2.2 字典的读取和修改

5.2.3 字典的遍历

5.2.4 字典到数组的转换

5.2.5 不可变字典

5.3 集合

5.3.1 集合创建

5.3.2 集合的修改

5.3.3 集合的遍历

5.3.4 集合的运用

5.4 小结

5.5 知识拓展

第6章 函数和闭包

6.1 函数

6.1.1 函数的基本概念

6.1.2 函数参数

6.1.3 默认参数

6.1.4 in-out参数

6.1.5 函数返回值

6.1.6 嵌套函数

6.1.7 作用域

6.1.8 函数类型

6.2 闭包

6.2.1 闭包的概念

6.2.2 闭包的语法

6.2.3 闭包表达式

6.2.4 闭包捕获上下文

6.2.5 闭包式引用

6.3 小结

6.4 知识拓展

第7章 自定义类型

7.1 枚举

7.1.1 基本枚举

7.1.2 枚举的原始值

7.1.3 方法

7.1.4 关联值

7.2 结构体

7.2.1 结构体的声明

7.2.2 实例方法

7.2.3 关键字mutating

7.3 类

7.3.1 类的声明

7.3.2 类的继承

7.4 属性

7.4.1 属性的设置

7.4.2 属性的懒加载

7.4.3 属性的读取

7.4.4 属性的写入

7.4.5 观察属性的变化

7.4.6 类型的属性

7.4.7 访问控制

7.5 初始化

7.5.1 初始化语法

7.5.2 结构体的初始化

7.5.3 类的初始化

7.5.4 可失败的初始化

7.6 值类型与引用类型

7.6.1 值语义

7.6.2 引用语义

7.6.3 相等与同一

7.7 小结

7.8 知识拓展

第8章 Swift高级特性

8.1 协议

8.1.1 协议的定义

8.1.2 协议的使用

8.1.3 符合协议

8.1.4 协议继承

8.1.5 协议组合

8.2 扩展

8.2.1 扩展已有类型

8.2.2 扩展自定义类型

8.3 错误处理

8.3.1 错误的分类

8.3.2 抛出错误

8.3.3 捕获错误

8.3.4 错误处理的原则

8.4 内存管理

8.4.1 内存分配

8.4.2 ARC

8.4.3 循环引用

8.5 小结

8.6 知识拓展

第9章 iOS应用开发概览

9.1 iOS应用基础框架

9.1.1 iOS应用的生命周期

9.1.2 main()函数

9.1.3 UIApplicationDelegate

9.1.4 Nib文件

9.1.5 事件处理流程

9.2 iOS应用运行环境

9.2.1 快速启动

9.2.2 安全处理

9.2.3 系统内存管理

9.3 iOS应用程序包

9.3.1 Info.plist

9.3.2 应用程序图标

9.4 iOS应用程序间的交互

9.4.1 使用URL打开其他应用程序

9.4.2 从外部URL打开应用程序

9.5 小结

9.6 知识拓展

第10章 窗口和视图

10.1 窗口和视图简介

10.1.1 窗口

10.1.2 视图

10.2 UIView基础

10.2.1 UIView的Frame布局

10.2.2 UIView绘制

10.2.3 UIView的层次结构

10.3 自动布局Auto Layout

10.3.1 布局属性

10.3.2 约束

10.4 小结

10.5 知识拓展

第11章 视图控制器

11.1 视图控制器基础

11.1.1 视图控制器的功能

11.1.2 UIViewController的子类

11.2 UIViewController的生命周期

11.2.1 初始化

11.2.2 加载视图

11.2.3 视图展示

11.2.4 视图消失

11.3 UIViewController的使用

11.3.1 UIViewController概述

11.3.2 自定义UIViewController

11.4 UINavigationController的使用

11.4.1 UINavigationController概述

11.4.2 使用UINavigationController

11.5 UITabBarController的使用

11.5.1 UITabBarController概述

11.5.2 使用UITabBarController

11.6 小结

11.7 知识拓展

第12章 简单控件

12.1 UIKit简介

12.1.1 控件的分类

12.1.2 UIControl

12.2 UIButton

12.2.1 在视图中添加UIButton

12.2.2 UIButton的属性

12.3 UITextField

12.3.1 在视图中添加UITextField

12.3.2 UITextField的属性

12.3.3 UITextFieldDelegate

12.4 UISwitch

12.4.1 在视图中添加UISwitch

12.4.2 UISwitch的属性

12.5 UISegmentedControl

12.5.1 在视图中添加UISegmentedControl

12.5.2 UISegmentedControl的属性和方法

12.6 UISlider

12.6.1 在视图中添加UISlider

12.6.2 UISlider的属性

12.7 UIImageView

12.7.1 在视图中添加UIImageView

12.7.2 UIImageView的属性

12.8 UIProgressView

12.8.1 在视图中添加UIProgressView

12.8.2 UIProgressView的属性

12.9 UIActivityIndicatorView

12.9.1 在视图中添加UIActivityIndicatorView

12.9.2 UIActivityIndicatorView的属性

12.10 UIDatePicker

12.10.2 UIDatePicker的属性

12.11 UIPickerView

12.11.2 UIPickerView的属性

12.11.4 UIPickerViewDelegate

12.12 UIAlertController

12.12.1 展示UIAlertController警示框

12.12.2 展示UIAlertController选择框

12.13 UIStepper

12.13.2 UIStepper的属性

12.14 UITextView

12.14.1 添加UITextView

12.14.2 UITextView的属性

12.14.3 UITextViewDelegate

12.15 小结

12.16 知识拓展

第13章 复杂控件

13.1 UITableView

13.1.1 添加UITableView

13.1.2 UITableViewDataSource

13.1.3 UITableViewDelegate

13.1.4 UITableViewCell

13.1.5 创建一个数据类

13.2 UICollectionView

13.2.1 添加UICollectionView

13.2.2 UICollectionViewDataSource

13.2.3 UICollectionViewDelegate

13.2.4 UICollectionViewFlowlayout

13.2.5 UICollectionViewCell

13.3 WKWebView

13.3.1 添加WKWebView

13.3.2 WKNavigationDelegate

13.3.3 WKUIDelegate

13.4 小结

13.5 知识拓展

第14章 事件处理

14.1 触摸

14.1.1 触摸机制

14.1.2 触摸与事件

14.1.3 事件传递

14.1.4 事件响应过程

14.1.5 事件处理方法

14.2 动作

14.3 手势

14.4 编辑事件

14.4.1 粘贴板

14.4.2 数据表示

14.4.3 选项菜单

14.4.4 剪切和复制

14.4.5 粘贴

14.5 小结

14.6 知识拓展

第15章 绘图

15.1 Quartz 2D

15.2 Quartz 2D绘图

15.2.1 坐标

15.2.2 颜色

15.2.3 图形

15.3 贝塞尔曲线

15.3.1 绘制曲线

15.3.2 曲线内部检测

15.4 小结

15.5 知识拓展

第16章 动画

16.1 Core Animation

16.1.1 CALayer

16.1.2 CAAnimation

16.1.3 CATransaction

16.1.4 动画实战

16.2 小结

第17章 多媒体开发

17.1 初识AVFoundation

17.2 音频

17.2.1 音频支持

17.2.2 播放音频

17.2.3 录制音频

17.3 相册以及相机使用

17.3.1 UIImagePickerController

17.3.2 UIImagePickerControllerDelegate

17.4 小结

第18章 传感器使用

18.1 Core Motion

18.1.1 加速度计

18.1.2 陀螺仪

18.1.3 磁力计

18.2 Core Location

18.2.1 获取当前位置

18.2.2 获取城市信息

18.3 小结

第19章 iOS文件系统

19.1 iOS文件操作

19.1.1 iOS常用目录

19.1.2 获取常用目录的路径

19.1.3 iOS应用更新机制

19.1.4 iOS文件备份和恢复

19.2 iOS数据读写操作

19.2.1 读写文件数据

19.2.2 读写属性列表数据

19.2.3 归档器和解档器读写数据

19.2.4 保存状态

19.3 小结

19.4 知识拓展

第20章 数据

20.1 SQLite数据库

20.1.1 SQLite中的数据类型

20.1.2 SQLite常用函数及返回码

20.1.3 打开数据库

20.1.4 创建表

20.1.5 操作语句

20.1.6 数据查询

20.2 XML

20.2.1 XML简介

20.2.2 XML语法

20.2.3 XML元素

20.2.4 XML属性

20.3 JSON

20.3.1 JSON简介

20.3.2 JSON语法

20.3.3 JSON实战

20.4 小结

20.5 知识拓展

第21章 项目实战

21.1 发布流程

21.2 倒计时提醒应用

21.2.1 应用功能的确定

21.2.2 创建项目

21.2.3 创建自定义的Cell

21.2.4 搭建添加事件的界面

21.2.5 事件的数据结构

21.2.6 事件的数据库读写

21.2.7 开发添加事件的功能

21.2.8 开发事件展示的界面

21.3 小结