iOS 项目开发全程实录

978-7-115-43357-2
作者: 管蕾
译者:
编辑: 张涛

图书目录:

第 1章 搭建开发环境实战 1

1.1 下载并安装Xcode 1

1.1.1 范例说明 1

1.1.2 具体实现 1

1.1.3 范例技巧—成为免费会员还是

付费会员 4

1.2 创建iOS 项目并启动模拟器 4

1.2.1 范例说明 4

1.2.2 具体实现 5

1.2.3 范例技巧—Xcode里的模拟器到底

在哪里 7

1.3 打开一个现有的iOS 项目 7

1.3.1 范例说明 7

1.3.2 具体实现 8

1.3.3 范例技巧—直接双击打开 8

1.4 Xcode基本面板介绍 8

1.4.1 范例说明 8

1.4.2 具体实现 8

1.4.3 范例技巧—使用断点调试 11

1.5 通过搜索框缩小文件范围 13

1.5.1 范例说明 13

1.5.2 具体实现 13

1.5.3 范例技巧—改变公司名称 13

1.6 格式化代码 14

1.6.1 范例说明 14

1.6.2 具体实现 14

1.6.3 范例技巧—代码缩进和自动

完成 14

1.7 文件内查找和替代 15

1.7.1 范例说明 15

1.7.2 具体实现 15

1.7.3 范例技巧—快速定位到代码行 16

1.8 使用Xcode 7帮助系统 17

1.8.1 范例说明 17

1.8.2 具体实现 17

1.8.3 范例技巧—使用Xcode帮助 19

第 2章 Objective-C语法实战 20

2.1 输出一个整数 20

2.1.1 范例说明 20

2.1.2 具体实现 20

2.1.3 范例技巧—两种特殊的格式 20

2.2 实现格式化输出 21

2.2.1 范例说明 21

2.2.2 具体实现 21

2.2.3 范例技巧—还存在两种特殊的

格式 21

2.3 使用%f和%e实现格式化输出 21

2.3.1 范例说明 21

2.3.2 具体实现 22

2.3.3 范例技巧—类型double与类型float

类似 22

2.4 有效数字造成误差 22

2.4.1 范例说明 22

2.4.2 具体实现 22

2.4.3 范例技巧—实型数据的分类 23

2.5 使用基本的Objective-C数据类型 23

2.5.1 范例说明 23

2.5.2 具体实现 24

2.5.3 范例技巧—char类型应用注意

事项 24

2.6 使用转义字符 24

2.6.1 范例说明 24

2.6.2 具体实现 24

2.6.3 范例技巧—总结Objective-C常用的转义字符 25

2.7 使用NSLog函数输出不同的数据类型 25

2.7.1 范例说明 25

2.7.2 具体实现 26

2.7.3 范例技巧—NSLog函数的基本

功能 26

2.8 显示变量值并计算结果 27

2.8.1 范例说明 27

2.8.2 具体实现 27

2.8.3 范例技巧—变量的使用诀窍 27

2.9 统一定义变量 28

2.9.1 范例说明 28

2.9.2 具体实现 28

2.9.3 范例技巧—Objective-C对变量命名的硬性规定 28

2.10 使用NSString输出字符 28

2.10.1 范例说明 29

2.10.2 具体实现 29

2.10.3 范例技巧—字符串常量和字符常量

的区别 29

2.11 实现四则运算 29

2.11.1 范例说明 29

2.11.2 具体实现 29

2.11.3 范例技巧—什么是运算符的优

先级 30

2.12 使用整数运算符和一元负号运算符 30

2.12.1 范例说明 30

2.12.2 具体实现 30

2.12.3 范例技巧—代码之美观 31

2.13 使用Objective-C模运算符 31

2.13.1 范例说明 31

2.13.2 具体实现 31

2.13.3 范例技巧—注意模运算符的

优先级 32

2.14 整型值和浮点值的相互转换 32

2.14.1 范例说明 32

2.14.2 具体实现 32

2.14.3 范例技巧—在编写算术表达式时

要记住和整数运算的关系 33

2.15 使用条件运算符 33

2.15.1 范例说明 33

2.15.2 具体实现 33

2.15.3 范例技巧—用作if语句的一种缩写形式 33

2.16 使用比较运算符判断数据大小 34

2.16.1 范例说明 34

2.16.2 具体实现 34

2.16.3 范例技巧—使用Objective-C关系

运算符 34

2.17 使用强制类型转换运算符 35

2.17.1 范例说明 35

2.17.2 具体实现 35

2.17.3 范例技巧—注意表达式类型的自动

提升机制 35

2.18 实现一个计算器 36

2.18.1 范例说明 36

2.18.2 具体实现 36

2.18.3 范例技巧—使用赋值运算符的

目的 37

2.19 使用位运算符 37

2.19.1 范例说明 37

2.19.2 具体实现 37

2.19.3 范例技巧—需要特别注意求反

运算符 38

2.20 使用头文件实现特殊数学运算 38

2.20.1 范例说明 38

2.20.2 具体实现 38

2.20.3 范例技巧—总结Objective-C的

运算符 39

2.21 使用逻辑运算符 40

2.21.1 范例说明 40

2.21.2 具体实现 40

2.21.3 范例技巧—逻辑运算符的特殊说明和规律总结 41

2.22 显示输入数字的绝 对值 41

2.22.1 范例说明 41

2.22.2 具体实现 41

2.22.3 范例技巧—单分支if结构的

技巧 42

2.23 判断是奇数还是偶数 42

2.23.1 范例说明 42

2.23.2 具体实现 42

2.23.3 范例技巧—if-else是if语句一般格式的一种扩展形式 43

2.24 判断是否是闰年 43

2.24.1 范例说明 43

2.24.2 具体实现 43

2.24.3 范例技巧—复合运算符的作用 44

2.25 判断输入字符的类型 44

2.25.1 范例说明 44

2.25.2 具体实现 44

2.25.3 范例技巧—“Enter”键的作用 45

2.26 使用switch计算输入表达式的值 45

2.26.1 范例说明 45

2.26.2 具体实现 45

2.26.3 范例技巧—Objective-C与C语言的区别 46

2.27 计算第 200个三角形数 46

2.27.1 范例说明 46

2.27.2 具体实现 46

2.27.3 范例技巧—掌握for语句的语法

格式 47

2.28 计算三角形数 47

2.28.1 范例说明 47

2.28.2 具体实现 47

2.28.3 范例技巧—注意界限问题 48

2.29 输出从1到5的整数 48

2.29.1 范例说明 48

2.29.2 具体实现 48

2.29.3 范例技巧—for语句和while语句的等价转换 48

2.30 显示输入数的各个位的值 49

2.30.1 范例说明 49

2.30.2 具体实现 49

2.30.3 范例技巧—使用do语句进行

替换 50

2.31 计算圆的周长和面积 50

2.31.1 范例说明 50

2.31.2 具体实现 50

2.31.3 范例技巧—另外一种计算圆的周长和面积的方法 51

2.32 判断用户输入月份的天数 51

2.32.1 范例说明 51

2.32.2 具体实现 51

2.32.3 范例技巧—尽量把枚举值当作独立的数据类型来对待 52

2.33 生成一个素数表 53

2.33.1 范例说明 53

2.33.2 具体实现 53

2.33.3 范例技巧—类Foundation为使用数组提供了便利 54

2.34 使用方法copy实现复制 54

2.34.1 范例说明 54

2.34.2 具体实现 54

2.34.3 范例技巧—复制操作时的内存

问题 55

2.35 生成斐波纳契数的前15个值 55

2.35.1 范例说明 55

2.35.2 具体实现 55

2.35.3 范例技巧—必须在定义数组后才能使用下标变量 56

2.36 通过数组模拟五子棋应用 56

2.36.1 范例说明 56

2.36.2 具体实现 56

2.36.3 范例技巧—字符数组的作用 57

2.37 计算三角形数 58

2.37.1 范例说明 58

2.37.2 具体实现 58

2.37.3 范例技巧—方法是函数,消息表达式是函数调用 58

2.38 使用头文件实现特殊数学运算 58

2.38.1 范例说明 58

2.38.2 具体实现 59

2.38.3 范例技巧—可以省略返回整数的函数返回类型声明吗 59

2.39 通过函数递归计算fn(10)的值 59

2.39.1 范例说明 59

2.39.2 具体实现 59

2.39.3 范例技巧—函数递归调用的两个

要素 60

2.40 将数组作为函数的参数 60

2.40.1 范例说明 60

2.40.2 具体实现 60

2.40.3 范例技巧—使用防御式编程 61

2.41 实现冒泡排序 62

2.41.1 范例说明 62

2.41.2 具体实现 62

2.41.3 范例技巧—冒泡排序算法的运作

过程 62

2.42 统计数组数据**大值、**小值、平均值和

总和 63

2.42.1 范例说明 63

2.42.2 具体实现 63

2.42.3 范例技巧—局部变量的作用域的

注意事项 64

2.43 利用静态static计算阶乘 64

2.43.1 范例说明 64

2.43.2 具体实现 64

2.43.3 范例技巧—静态存储变量的

生存期 64

2.44 显示当前的日期 65

2.44.1 范例说明 65

2.44.2 具体实现 65

2.44.3 范例技巧—基本数据类型成员变量的初始化缺省值 65

2.45 确定今 天是不是一个月**后一 天 66

2.45.1 范例说明 66

2.45.2 具体实现 66

2.45.3 范例技巧—必须导入文件Foundation.h 67

2.46 使用指针遍历数组元素 68

2.46.1 范例说明 68

2.46.2 具体实现 68

2.46.3 范例技巧—使用简化方式遍历

数组 68

2.47 对数组元素进行快速排序 69

2.47.1 范例说明 69

2.47.2 具体实现 69

2.47.3 范例技巧—指针和数组的关系 70

2.48 计算整型数组所包含元素的和 70

2.48.1 范例说明 70

2.48.2 具体实现 70

2.48.3 范例技巧—数组还是指针的

选择 71

2.49 将字符串按照从小到大的顺序进行排序 71

2.49.1 范例说明 71

2.49.2 具体实现 71

2.49.3 范例技巧—使用字符串指针变量与字符数组的区别 72

2.50 计算**大值和平均值 73

2.50.1 范例说明 73

2.50.2 具体实现 73

2.50.3 范例技巧—把函数地址赋值给函数指针的两种形式 74

2.51 分别计算数组元素的平方和立方值 74

2.51.1 范例说明 74

2.51.2 具体实现 74

2.51.3 范例技巧—通过函数交换

数值 75

第3章 Swift语法实战 76

3.1 定义并输出常量的值 76

3.1.1 范例说明 76

3.1.2 具体实现 76

3.1.3 范例技巧—Swift的编程风格 76

3.2 定义指定类型的变量 77

3.2.1 范例说明 77

3.2.2 具体实现 77

3.2.3 范例技巧—被称为动态语言的

原因 77

3.3 计算一个圆的面积 77

3.3.1 范例说明 77

3.3.2 具体实现 78

3.3.3 范例技巧—占位符的用法 78

3.4 添加单行注释和多行注释 78

3.4.1 范例说明 78

3.4.2 具体实现 78

3.4.3 范例技巧—使用注释时的

注意事项 78

3.5 输出大整数值 79

3.5.1 范例说明 79

3.5.2 具体实现 79

3.5.3 范例技巧—建议读者尽量不要使用UInt 79

3.6 使用浮点数 79

3.6.1 范例说明 80

3.6.2 具体实现 80

3.6.3 范例技巧—浮点数的精度 80

3.7 输出不同进制的数字17 80

3.7.1 范例说明 80

3.7.2 具体实现 81

3.7.3 范例技巧—使用整型字面量的

规则 81

3.8 实现整型转换 81

3.8.1 范例说明 81

3.8.2 具体实现 81

3.8.3 范例技巧—显式指定长度类型的

意义 82

3.9 使用赋值运算符和表达式 82

3.9.1 范例说明 82

3.9.2 具体实现 83

3.9.3 范例技巧—与 C和 Objective-C 的

不同 83

3.10 实现复杂的数学运算 83

3.10.1 范例说明 83

3.10.2 具体实现 83

3.10.3 范例技巧—Swift语言的双目

运算符 84

3.1 1 使用头文件实现特殊数学运算 84

3.11.1 范例说明 84

3.11.2 具体实现 84

3.11.3 范例技巧—恒等“==”和不恒等“!==” 85

3.1 2 使用三元条件运算符判断变量值 85

3.12.1 范例说明 85

3.12.2 具体实现 85

3.12.3 范例技巧—避免在一个组合语句中使用多个三元条件运算符 86

3.1 3 使用闭范围运算符 86

3.13.1 范例说明 86

3.13.2 具体实现 86

3.13.3 范例技巧—使用半闭区间

运算符 86

3.1 4 使用括号设置运算优先级 87

3.14.1 范例说明 87

3.14.2 具体实现 87

3.14.3 范例技巧—建议在可以让代码变清晰的地方加一个括号 87

3.1 5 使用左移/右移运算符 87

3.15.1 范例说明 87

3.15.2 具体实现 88

3.15.3 范例技巧—左移运算符和右移运算符的实质 88

3.1 6 使用溢出运算符 88

3.16.1 范例说明 88

3.16.2 具体实现 89

3.16.3 范例技巧—实现值的上溢 89

3.17 演示运算符的优先级和结合性 90

3.17.1 范例说明 90

3.17.2 具体实现 90

3.17.3 范例技巧—总结Swift语言运算符的优先级 90

3.18 使用字符型变量 91

3.18.1 范例说明 91

3.18.2 具体实现 91

3.18.3 范例技巧—string与 Foundation

NSString的无缝桥接 92

3.19 判断字符串是否为空 92

3.19.1 范例说明 92

3.19.2 具体实现 92

3.19.3 范例技巧—初始化空字符串 92

3.20 追加字符串的内容 92

3.20.1 范例说明 92

3.20.2 具体实现 93

3.20.3 范例技巧—设置字符串是否可以被修改的方法 93

3.21 获取字符串的字符数量 93

3.21.1 范例说明 93

3.21.2 具体实现 93

3.21.3 范例技巧—定占用相同内存空间的问题 94

3.22 验证字符串是否相等 94

3.22.1 范例说明 94

3.22.2 具体实现 94

3.22.3 范例技巧—字符串相等和前缀/后缀相等 94

3.23 声明数组变量 95

3.23.1 范例说明 95

3.23.2 具体实现 95

3.23.3 范例技巧—推荐用较短的方式声明数组 95

3.24 向数组中添加元素 96

3.24.1 范例说明 96

3.24.2 具体实现 96

3.24.3 范例技巧—不能使用下标语法在数组尾部添加新项 96

3.25 一道数组面试题 96

3.25.1 范例说明 96

3.25.2 具体实现 97

3.25.3 范例技巧—创建并构造一个

数组 98

3.26 声明字典变量 98

3.26.1 范例说明 98

3.26.2 具体实现 98

3.26.3 范例技巧—字典的深层意义 99

3.27 遍历字典中的数据 99

3.27.1 范例说明 100

3.27.2 具体实现 100

3.27.3 范例技巧—使用for-in循环遍历字典数据 100

3.28 使用字典统计字符的出现次数 100

3.28.1 范例说明 101

3.28.2 具体实现 101

3.28.3 范例技巧—字典和数组的复制是

不同的 101

3.29 使用for语句遍历数组 102

3.29.1 范例说明 102

3.29.2 具体实现 102

3.29.3 范例技巧—for语句的执行

流程 102

3.30 使用if语句判断年龄 103

3.30.1 范例说明 103

3.30.2 具体实现 103

3.30.3 范例技巧—if语句的两种标准

形式 103

3.31 使用switch语句判断成绩 103

3.31.1 范例说明 103

3.31.2 具体实现 104

3.31.3 范例技巧—分支switch {case:...}语句的特点 104

3.32 计算指定整数的阶乘 104

3.32.1 范例说明 104

3.32.2 具体实现 105

3.32.3 范例技巧—使用for循环代替while循环 105

3.33 while循环中的死循环 105

3.33.1 范例说明 105

3.33.2 具体实现 105

3.33.3 范例技巧—实现循环语句的

嵌套 106

3.34 使用头文件实现特殊数学运算 106

3.34.1 范例说明 106

3.34.2 具体实现 106

3.34.3 范例技巧—允许多个case匹配同一个值 107

3.35 通过函数比较两个数的大小 107

3.35.1 范例说明 107

3.35.2 具体实现 107

3.35.3 范例技巧—3种调用函数的

方式 107

3.36 使用函数改变引用变量本身 108

3.36.1 范例说明 108

3.36.2 具体实现 108

3.36.3 范例技巧—传递输入输出参数值时的注意事项 109

3.37 在函数中定义函数类型的形参 109

3.37.1 范例说明 109

3.37.2 具体实现 109

3.37.3 范例技巧—将函数类型作为另一个函数的返回类型 110

3.38 使用嵌套函数 110

3.38.1 范例说明 110

3.38.2 具体实现 111

3.38.3 范例技巧—在函数中定义

函数 111

3.39 使用递归解决一道数学题 112

3.39.1 范例说明 112

3.39.2 具体实现 112

3.39.3 范例技巧—Swift中的内置

函数 112

3.40 调用闭包 112

3.40.1 范例说明 112

3.40.2 具体实现 113

3.40.3 范例技巧—闭包的优化目标 113

3.41 捕获上下文中的变量和常量 113

3.41.1 范例说明 113

3.41.2 具体实现 113

3.41.3 范例技巧—尾随闭包的作用 114

3.42 使用case定义多个枚举 114

3.42.1 范例说明 114

3.42.2 具体实现 114

3.42.3 范例技巧—为枚举定义原始值 115

3.43 使用可选链代替强制解析 116

3.43.1 范例说明 116

3.43.2 具体实现 116

3.43.3 范例技巧—如何选择类型 117

3.44 测试释放的时间点 118

3.44.1 范例说明 118

3.44.2 具体实现 118

3.44.3 范例技巧—弱引用的作用 119

3.45 使用类型约束实现冒泡排序算法 119

3.45.1 范例说明 119

3.45.2 具体实现 119

3.45.3 范例技巧—定义冒泡排序函数 120

3.46 使用关联类型 121

3.46.1 范例说明 121

3.46.2 具体实现 121

3.46.3 范例技巧—Array的3个功能 122

第4章 界面布局实战 123

4.1 将Xcode界面连接到代码 123

4.1.1 范例说明 123

4.1.2 具体实现 123

4.1.3 范例技巧—Interface Builder可以

提高开发效率 128

4.2 纯代码方式实现UI 128

4.2.1 范例说明 128

4.2.2 具体实现 128

4.2.3 范例技巧—什么情况下使用IB进行

开发 129

4.3 使用模板Single View Application 130

4.3.1 范例说明 130

4.3.2 具体实现 130

4.3.3 范例技巧—Xcode中的MVC 140

4.4 使用头文件实现特殊数学运算 140

4.4.1 范例说明 140

4.4.2 具体实现 140

4.4.3 范例技巧—头文件中的常用函数 142

4.5 拆分表视图 142

4.5.1 范例说明 142

4.5.2 具体实现 142

4.5.3 范例技巧—表视图的外观 143

4.6 自定义一个UITableViewCell 143

4.6.1 范例说明 144

4.6.2 具体实现 144

4.6.3 范例技巧—什么是表单元格 147

4.7 实现一个图文样式联系人列表效果 148

4.7.1 范例说明 148

4.7.2 具体实现 148

4.7.3 范例技巧—在配置表视图时必须设置标识符 148

4.8 在表视图中动态操作单元格(Swift版) 148

4.8.1 范例说明 148

4.8.2 具体实现 149

4.8.3 范例技巧—表视图数据源协议 150

4.9 给四条边框加上阴影 151

4.9.1 范例说明 151

4.9.2 具体实现 151

4.9.3 范例技巧—UITableView的属性 151

4.10 给UIView加上各种圆角、边框效果 152

4.10.1 范例说明 152

4.10.2 具体实现 152

4.10.3 范例技巧—UIView在MVC中的重要作用 152

4.11 实现弹出式动画表单效果 153

4.11.1 范例说明 153

4.11.2 具体实现 153

4.11.3 范例技巧—UIView的本质 154

4.12 创建一个滚动图片浏览器(Swift版) 154

4.12.1 范例说明 154

4.12.2 具体实现 154

4.12.3 范例技巧—UIView中的

CALayer 155

4.13 实现可以移动切换的视图效果 155

4.13.1 范例说明 155

4.13.2 具体实现 155

4.13.3 范例技巧—iOS程序的视图

架构 158

4.14 实现手动旋转屏幕的效果 159

4.14.1 范例说明 159

4.14.2 具体实现 159

4.14.3 范例技巧—视图层次和子视图

管理 160

4.15 实现会员登录系统(Swift版) 160

4.15.1 范例说明 160

4.15.2 具体实现 160

4.15.3 范例技巧—UIViewController的

属性 161

4.16 使用导航控制器展现3个场景 162

4.16.1 范例说明 162

4.16.2 具体实现 162

4.16.3 范例技巧—UINavigationController的作用 163

4.17 实现一个界面导航条功能 163

4.17.1 范例说明 163

4.17.2 具体实现 163

4.17.3 范例技巧—导航栏、导航项和栏

按钮项 165

4.18 创建主从关系的“主-子”视图

(Swift版) 166

4.18.1 范例说明 166

4.18.2 具体实现 166

4.18.3 范例技巧—深入理解navigationItem的作用 167

4.19 使用选项卡栏控制器构建3个场景 167

4.19.1 范例说明 167

4.19.2 具体实现 167

4.19.3 范例技巧—UITabBarController推入和推出视图的方式 168

4.20 使用动态单元格定制表格行 168

4.20.1 范例说明 168

4.20.2 具体实现 168

4.20.3 范例技巧—选项卡栏和选项卡

栏项 169

4.21 开发一个界面选择控制器(Swift版) 169

4.21.1 范例说明 169

4.21.2 具体实现 169

4.21.3 范例技巧—添加选项卡栏控制器的方法 170

4.22 使用第 二个视图来编辑第 一个视图中的

信息 171

4.22.1 范例说明 171

4.22.2 具体实现 171

4.22.3 范例技巧—多场景应用程序的常用术语 175

4.23 实现多个视图之间的切换 175

4.23.1 范例说明 176

4.23.2 具体实现 176

4.23.3 范例技巧—实现多场景功能的方法是在故事板文件中创建多个场景 179

4.24 实现多场景视图数据传输(Swift版) 179

4.24.1 范例说明 180

4.24.2 具体实现 180

4.24.3 范例技巧—初步理解手势识别的

作用 181

4.25 使用Segue实现过渡效果 181

4.25.1 范例说明 181

4.25.2 具体实现 181

4.25.3 范例技巧—隐藏指定的UIView

区域的方法 182

4.26 为Interface Builder设置自定义类

(Swift版) 182

4.26.1 范例说明 182

4.26.2 具体实现 182

4.26.3 范例技巧—IB和纯代码联合编码的好处 183

4.27 在同一个工程中创建多个分类

(Swift版) 183

4.27.1 范例说明 183

4.27.2 具体实现 183

4.27.3 范例技巧—MVC中对控制器对象的理解 184

4.28 创建一个自定义的UIView视图

(Swift版) 185

4.28.1 范例说明 185

4.28.2 具体实现 185

4.28.3 范例技巧—定位屏幕中的图片的

方法 186

4.29 动态控制屏幕中动画的颜色

(Swift版) 186

4.29.1 范例说明 186

4.29.2 具体实现 186

4.29.3 范例技巧—视图绘制周期 187

4.30 实现多视图导航界面系统(Swift版) 187

4.30.1 范例说明 187

4.30.2 具体实现 188

4.30.3 范例技巧—实现背景透明 188

4.31 实现一个会员登录系统(Swift版) 188

4.31.1 范例说明 188

4.31.2 具体实现 188

4.31.3 范例技巧—旋转和缩放视图的

方法 190

4.32 创建一个App软件管理系统

(Swift版) 190

4.32.1 范例说明 190

4.32.2 具体实现 190

4.32.3 范例技巧—UIActivityIndicatorView的系统样式 192

4.33 创建一个图片浏览系统(Swift版) 192

4.33.1 范例说明 192

4.33.2 具体实现 192

4.33.3 范例技巧—UITableView的主要

作用 194

4.34 创建多界面视图(Swift版) 194

4.34.1 范例说明 194

4.34.2 具体实现 194

4.34.3 范例技巧—UITableView的初始化方法 195

4.35 联合使用UITabbarController和UIWebView

(Swift版) 195

4.35.1 范例说明 195

4.35.2 具体实现 195

4.35.3 范例技巧—UITableView的委托

方法 196

第5章 控件应用实战 198

5.1 控制是否显示TextField中的密码明文

信息 198

5.1.1 范例说明 198

5.1.2 具体实现 198

5.1.3 范例技巧—文本框的功能 199

5.2 对输入内容的长度进行验证 199

5.2.1 范例说明 199

5.2.2 具体实现 199

5.2.3 范例技巧—ViewController.m的

功能 200

5.3 实现用户登录框界面 200

5.3.1 范例说明 200

5.3.2 具体实现 200

5.3.3 范例技巧—控件UITextField的常用属性 201

5.4 震动UITextField控件(Swift版) 201

5.4.1 范例说明 201

5.4.2 具体实现 201

5.4.3 范例技巧—改变TextField背景

图片 202

5.5 动态输入的文本 202

5.5.1 范例说明 202

5.5.2 具体实现 202

5.5.3 范例技巧—什么是文本视图(UITextView) 203

5.6 自定义文字的行间距 203

5.6.1 范例说明 203

5.6.2 具体实现 203

5.6.3 范例技巧—Text Field部分的具体

说明 204

5.7 自定义UITextView控件的样式 205

5.7.1 范例说明 205

5.7.2 具体实现 205

5.7.3 范例技巧—Captitalization的

作用 206

5.8 在指定的区域中输入文本(Swift版) 206

5.8.1 范例说明 206

5.8.2 具体实现 206

5.8.3 范例技巧—3个重要的键盘属性 207

5.9 使用UILabel显示一段文本 207

5.9.1 范例说明 207

5.9.2 具体实现 207

5.9.3 范例技巧—标签(UILabel)的

作用 208

5.10 为文字分别添加上划线、下划线和

中划线 209

5.10.1 范例说明 209

5.10.2 具体实现 209

5.10.3 范例技巧—标签(UILabel)的常用属性 209

5.11 显示被触摸单词的字母 210

5.11.1 范例说明 210

5.11.2 具体实现 210

5.11.3 范例技巧—截取文本操作 211

5.12 输出一个指定样式的文本(Swift版) 211

5.12.1 范例说明 211

5.12.2 具体实现 211

5.12.3 范例技巧—让UILabel的文字顶部对齐 212

5.13 自定义设置按钮的图案(Swift版) 212

5.13.1 范例说明 212

5.13.2 具体实现 212

5.13.3 范例技巧—按钮(UIButton)的

作用 214

5.14 实现一个变换形状的动画按钮 215

5.14.1 范例说明 215

5.14.2 具体实现 215

5.14.3 范例技巧—按钮的外观风格 216

5.15 联合使用文本框、文本视图和按钮 216

5.15.1 范例说明 216

5.15.2 具体实现 216

5.15.3 范例技巧—设置成不同的背景

颜色 217

5.16 自定义一个按钮(Swift版) 218

5.16.1 范例说明 218

5.16.2 具体实现 218

5.16.3 范例技巧—何时释放release UIButton 219

5.17 使用素材图片实现滑动条特效 219

5.17.1 范例说明 219

5.17.2 具体实现 219

5.17.3 范例技巧—滑块(UISlider)

介绍 220

5.18 实现一个自动显示刻度记号的滑动条 221

5.18.1 范例说明 221

5.18.2 具体实现 221

5.18.3 范例技巧—滑块的作用 222

5.19 在屏幕中实现各种各样的滑块 222

5.19.1 范例说明 222

5.19.2 具体实现 223

5.19.3 范例技巧—UISlider控件的常用

属性 223

5.20 自定义实现UISlider控件功能

(Swift版) 223

5.20.1 范例说明 223

5.20.2 具体实现 223

5.20.3 范例技巧—设定滑块的范围与

默认值 224

5.21 自定义步进控件的样式 224

5.21.1 范例说明 224

5.21.2 具体实现 224

5.21.3 范例技巧—IStepper的属性 225

5.22 设置指定样式的步进控件 225

5.22.1 范例说明 225

5.22.2 具体实现 225

5.22.3 范例技巧—UIStepper的控制

属性 226

5.23 使用步进控件自动增减数字

(Swift版) 226

5.23.1 范例说明 226

5.23.2 具体实现 227

5.23.3 范例技巧—UIStepper控件的一个有趣特性 227

5.24 限制输入文本的长度 227

5.24.1 范例说明 227

5.24.2 具体实现 228

5.24.3 范例技巧—复制文件到测试

工程中 228

5.25 关闭虚拟键盘的输入动作 228

5.25.1 范例说明 228

5.25.2 具体实现 228

5.25.3 范例技巧—接口文件的实现 229

5.26 复制UILabel中的文本内容 229

5.26.1 范例说明 229

5.26.2 具体实现 229

5.26.3 范例技巧—核心文件的具体

实现 231

5.27 实现丰富多彩的控制按钮 231

5.27.1 范例说明 231

5.27.2 具体实现 231

5.27.3 范例技巧—创建按钮的通用

方法 231

5.28 显示对应的刻度 232

5.28.1 范例说明 232

5.28.2 具体实现 232

5.28.3 范例技巧—按钮控件中的常用

事件 233

5.29 在屏幕中输入文本(Swift版) 234

5.29.1 范例说明 234

5.29.2 具体实现 234

5.29.3 范例技巧—UITextField的按钮

样式 235

5.30 验证输入的文本(Swift版) 235

5.30.1 范例说明 236

5.30.2 具体实现 236

5.30.3 范例技巧—重写UITextField的绘制行为 237

5.31 实现一个文本编辑器(Swift版) 237

5.31.1 范例说明 237

5.31.2 具体实现 237

5.31.3 范例技巧—UITextView退出键盘的几种方式 238

5.32 在屏幕中输入可编辑文本

(Swift版) 238

5.32.1 范例说明 238

5.32.2 具体实现 238

5.32.3 范例技巧—为UITextView设定圆角效果 240

5.33 实现图文样式的按钮(Swift版) 240

5.33.1 范例说明 240

5.33.2 具体实现 241

5.33.3 范例技巧—通过按钮的事件来设置背景色 241

5.34 在UILabel中显示图标(Swift版) 241

5.34.1 范例说明 241

5.34.2 具体实现 242

5.34.3 范例技巧—创建指定大小的系统默认字体(默认:Helvetica) 242

5.35 自定义按钮的样式(Swift版) 243

5.35.1 范例说明 243

5.35.2 具体实现 243

5.35.3 范例技巧—获取可用的字体名

数组 243

5.36 自定义设置一个指定的按钮样式

(Swift版) 243

5.36.1 范例说明 244

5.36.2 具体实现 244

5.36.3 范例技巧—UIButton控件中的addSubview问题 245

5.37 实现纵向样式的滑块效果(Swift版) 245

5.37.1 范例说明 245

5.37.2 具体实现 246

5.37.3 范例技巧—滑块控件的通知

问题 246

5.38 实现滑块和进度条效果(Swift版) 247

5.38.1 范例说明 247

5.38.2 具体实现 247

5.38.3 范例技巧—UISlider的本质 247

5.39 使用步进控件浏览图片(Swift版) 248

5.39.1 范例说明 248

5.39.2 具体实现 248

5.39.3 范例技巧—设置步进控件的

颜色 248

5.40 使用步进控件显示数值(Swift版) 248

5.40.1 范例说明 248

5.40.2 具体实现 249

5.40.3 范例技巧—Swift步进控件的通用

用法 249

第6章 屏幕显示实战 250

6.1 改变UISwitch的文本和颜色 250

6.1.1 范例说明 250

6.1.2 具体实现 250

6.1.3 范例技巧—不要在设备屏幕上显示出乎用户意料的控件 252

6.2 在屏幕中显示具有开关状态的开关 252

6.2.1 范例说明 252

6.2.2 具体实现 252

6.2.3 范例技巧—总结开关控件的基本

用法 253

6.3 控制是否显示密码明文(Swift版) 253

6.3.1 范例说明 253

6.3.2 具体实现 254

6.3.3 范例技巧—单独编写类文件DKTextField.swift的原因 255

6.4 在屏幕中使用UISegmentedControl控件 255

6.4.1 范例说明 255

6.4.2 具体实现 255

6.4.3 范例技巧—解决分段控件导致内容变化的问题 256

6.5 添加图标和文本 256

6.5.1 范例说明 257

6.5.2 具体实现 257

6.5.3 范例技巧—分段控件的属性和

方法 257

6.6 使用分段控件控制背景颜色 258

6.6.1 范例说明 258

6.6.2 具体实现 259

6.6.3 范例技巧—要获取分段控件中当前选定按钮的标题 259

6.7 自定义UISegmentedControl控件的样式

(Swift版) 260

6.7.1 范例说明 260

6.7.2 具体实现 260

6.7.3 范例技巧—UISegmentedControl的常用方法 260

6.8 实现一个自定义提醒对话框 260

6.8.1 范例说明 261

6.8.2 具体实现 261

6.8.3 范例技巧—设置标签之间分割线的图案 261

6.9 实现振动提醒框效果 262

6.9.1 范例说明 262

6.9.2 具体实现 262

6.9.3 范例技巧—提醒框视图的意义 262

6.10 自定义UIAlertView控件的外观 263

6.10.1 范例说明 263

6.10.2 具体实现 263

6.10.3 范例技巧—对UIAlertView的

要求 266

6.11 使用UIAlertView控件(Swift版) 266

6.11.1 范例说明 266

6.11.2 具体实现 266

6.11.3 范例技巧—在实现提醒视图前需要先声明一个UIAlertView对象 266

6.12 实现特殊样式效果的UIActionSheet 266

6.12.1 范例说明 267

6.12.2 具体实现 267

6.12.3 范例技巧—UIActionSheet的

作用 267

6.13 实现Reeder阅读器效果 267

6.13.1 范例说明 267

6.13.2 具体实现 267

6.13.3 范例技巧—Reeder阅读器介绍 271

6.14 定制一个按钮面板 271

6.14.1 范例说明 271

6.14.2 具体实现 271

6.14.3 范例技巧—操作表的基本用法 272

6.15 实现一个分享App(Swift版) 272

6.15.1 范例说明 272

6.15.2 具体实现 272

6.15.3 范例技巧—操作表外观有4种

样式 274

6.16 使用UIToolBar实现工具栏(Swift版) 274

6.16.1 范例说明 274

6.16.2 具体实现 274

6.16.3 范例技巧—工具栏的作用 275

6.17 自定义UIToolBar的颜色和样式 275

6.17.1 范例说明 275

6.17.2 具体实现 275

6.17.3 范例技巧—工具栏与分段控件的

差别 276

6.18 创建一个带有图标按钮的工具栏 276

6.18.1 范例说明 276

6.18.2 具体实现 276

6.18.3 范例技巧—调整工具栏按钮位置的

方法 277

6.19 实现网格效果 278

6.19.1 范例说明 278

6.19.2 具体实现 278

6.19.3 范例技巧—UICollectionView的

构成 280

6.20 实现大小不相同的网格效果 280

6.20.1 范例说明 281

6.20.2 具体实现 281

6.20.3 范例技巧—UICollectionViewDataSource代理介绍 283

6.21 实现Pinterest样式的布局效果

(Swift版) 283

6.21.1 范例说明 284

6.21.2 具体实现 284

6.21.3 范例技巧—得到高效View的

秘籍 285

6.22 创建并使用选择框 286

6.22.1 范例说明 286

6.22.2 具体实现 286

6.22.3 范例技巧—开关控件的

默认尺寸 287

6.23 自定义工具条 287

6.23.1 范例说明 287

6.23.2 具体实现 287

6.23.3 范例技巧—为UIAlertView添加多个按钮 288

6.24 实现一个带输入框的提示框 288

6.24.1 范例说明 288

6.24.2 具体实现 288

6.24.3 范例技巧—如何为UIAlertView添加子视图 289

6.25 实现一个图片选择器 289

6.25.1 范例说明 289

6.25.2 具体实现 289

6.25.3 范例技巧—自定义消息文本 291

6.26 控制开关控件的状态(Swift版) 291

6.26.1 范例说明 291

6.26.2 具体实现 291

6.26.3 范例技巧—设置在开关状态切换时收到通知 292

6.27 在屏幕中显示不同样式的开关控件

(Swift版) 292

6.27.1 范例说明 292

6.27.2 具体实现 292

6.27.3 范例技巧—关于UISwitch的亮点特殊说明 295

6.28 实现指定样式的选项卡效果(Swift版) 295

6.28.1 范例说明 295

6.28.2 具体实现 295

6.28.3 范例技巧—获取标签之间分割线的图案 296

6.29 使用选项卡控制屏幕的背景颜色

(Swift版) 296

6.29.1 范例说明 296

6.29.2 具体实现 296

6.29.3 范例技巧—自行设置标签内容的偏移量 297

6.30 实现图文效果的提醒框(Swift版) 297

6.30.1 范例说明 297

6.30.2 具体实现 297

6.30.3 范例技巧—didPresentAlertView和willPresentAlertView的区别 298

6.31 实现一个独立的提醒框效果

(Swift版) 298

6.31.1 范例说明 298

6.31.2 具体实现 299

6.31.3 范例技巧—提醒框视图delegate 方法的执行顺序 299

6.32 实现一个基本的选项卡提醒框

(Swift版) 299

6.32.1 范例说明 299

6.32.2 具体实现 299

6.32.3 范例技巧—操作表与提醒视图的

区别 300

6.33 创建自定义效果的UIActionSheet

(Swift版) 300

6.33.1 范例说明 300

6.33.2 具体实现 300

6.33.3 范例技巧—响应操作表的方法 301

6.34 设置UIBarButtonItem图标(Swift版) 302

6.34.1 范例说明 302

6.34.2 具体实现 302

6.34.3 范例技巧—UIBarButtonItem的**简单定制方法 303

6.35 编辑UIBarButtonItem的标题

(Swift版) 303

6.35.1 范例说明 303

6.35.2 具体实现 303

6.35.3 范例技巧—配制栏按钮的属性 304

第7章 自动交互实战 306

7.1 实现界面滚动效果 306

7.1.1 范例说明 306

7.1.2 具体实现 306

7.1.3 范例技巧—滚动功能在移动设备中的意义 307

7.2 滑动隐藏状态栏 307

7.2.1 范例说明 307

7.2.2 具体实现 307

7.2.3 范例技巧—滚动控件的原理 308

7.3 滚动浏览图片(Swift版) 308

7.3.1 范例说明 308

7.3.2 具体实现 308

7.3.3 范例技巧—滚动控件的初始化 309

7.4 自定义 UIPageControl的外观样式 309

7.4.1 范例说明 309

7.4.2 具体实现 309

7.4.3 范例技巧—什么是翻页控件 310

7.5 实现一个图片播放器 310

7.5.1 范例说明 310

7.5.2 具体实现 310

7.5.3 范例技巧—分页控件的展示

方式 312

7.6 实现一个图片浏览程序 312

7.6.1 范例说明 312

7.6.2 具体实现 312

7.6.3 范例技巧—创建UIPageControl控件并设置属性的通用方法 313

7.7 使用UIPageControl设置4个界面

(Swift版) 313

7.7.1 范例说明 313

7.7.2 具体实现 313

7.7.3 范例技巧—发送分页通知的解决

方案 315

7.8 实现两个UIPickerView间的数据依赖 315

7.8.1 范例说明 315

7.8.2 具体实现 315

7.8.3 范例技巧—为什么修改参数 317

7.9 自定义一个选择器 317

7.9.1 范例说明 318

7.9.2 具体实现 318

7.9.3 范例技巧—总结规划变量和连接的过程 321

7.10 实现一个单列选择器 321

7.10.1 范例说明 321

7.10.2 具体实现 321

7.10.3 范例技巧—添加选择器视图的

方法 322

7.11 实现一个会发音的倒 计时器

(Swift版) 322

7.11.1 范例说明 322

7.11.2 具体实现 322

7.11.3 范例技巧—选择器视图的数据源

协议 324

7.12 实现一个日期选择器 325

7.12.1 范例说明 325

7.12.2 具体实现 325

7.12.3 范例技巧—什么是选择器 328

7.13 使用日期选择器自动选择一个时间 328

7.13.1 范例说明 328

7.13.2 具体实现 328

7.13.3 范例技巧—Apple中的两种

选择器 329

7.14 使用UIDatePicker(Swift版) 329

7.14.1 范例说明 329

7.14.2 具体实现 329

7.14.3 范例技巧—总结日期选择器的常用属性 331

7.15 自定义UIActivityIndicatorView的样式 332

7.15.1 范例说明 332

7.15.2 具体实现 332

7.15.3 范例技巧—UIActivityIndicatorView的功能 334

7.16 自定义活动指示器的显示样式 335

7.16.1 范例说明 335

7.16.2 具体实现 335

7.16.3 范例技巧—iOS内置的不同样式的UIActivityIndicator View 338

7.17 实现不同外观的活动指示器效果 338

7.17.1 范例说明 338

7.17.2 具体实现 338

7.17.3 范例技巧—UIActivityIndicatorView的使用演示 339

7.18 使用UIActivityIndicatorView控件

(Swift版) 339

7.18.1 范例说明 339

7.18.2 具体实现 339

7.18.3 范例技巧—总结

UIActivityIndicatorView的用处 340

7.19 自定义进度条的外观样式 340

7.19.1 范例说明 340

7.19.2 具体实现 340

7.19.3 范例技巧—3种属性设置风格 341

7.20 实现多个具有动态条纹背景的进度条 341

7.20.1 范例说明 341

7.20.2 具体实现 341

7.20.3 范例技巧—UIProgressView与UIActivityIndicatorView的差异 343

7.21 自定义一个指定外观样式的进度条 344

7.21.1 范例说明 344

7.21.2 具体实现 344

7.21.3 范例技巧—进度条的常用属性 347

7.22 实现自定义进度条效果(Swift版) 348

7.22.1 范例说明 348

7.22.2 具体实现 348

7.22.3 范例技巧—常用的两种进度条

风格 349

7.23 在查找信息输入关键字时实现自动提示

功能 349

7.23.1 范例说明 349

7.23.2 具体实现 349

7.23.3 范例技巧—UISearchBar控件的常用属性 350

7.24 实现文字输入的自动填充和自动提示

功能 351

7.24.1 范例说明 351

7.24.2 具体实现 351

7.24.3 范例技巧—修改UISearchBar的背景颜色 352

7.25 使用检索控件快速搜索信息 352

7.25.1 范例说明 352

7.25.2 具体实现 352

7.25.3 范例技巧—利用委托进行搜索的

过程 355

7.26 使用UISearchBar控件(Swift版) 355

7.26.1 范例说明 355

7.26.2 具体实现 355

7.26.3 范例技巧—searchDisplayController的搜索过程 356

7.27 在屏幕中显示一个日期选择器 356

7.27.1 范例说明 356

7.27.2 具体实现 356

7.27.3 范例技巧—创建日期/时间

选取器 357

7.28 通过滚动屏幕的方式浏览信息 357

7.28.1 范例说明 357

7.28.2 具体实现 358

7.28.3 范例技巧—滚动控件的属性

总结 358

7.29 实现一个图文样式联系人列表效果 359

7.29.1 范例说明 359

7.29.2 具体实现 359

7.29.3 范例技巧—UIScrollView的

实现理念 360

7.30 在屏幕中实现一个环形进度条效果 360

7.30.1 范例说明 360

7.30.2 具体实现 360

7.30.3 范例技巧—改变UIProgressView

控件的高度 361

7.31 实现快速搜索功能 361

7.31.1 范例说明 361

7.31.2 具体实现 362

7.31.3 范例技巧—去除SearchBar背景的

方法 364

7.32 实现一个“星期”选择框(Swift版) 364

7.32.1 范例说明 364

7.32.2 具体实现 364

7.32.3 范例技巧—日期选取器的模式 365

7.33 实现一个自动输入系统(Swift版) 365

7.33.1 范例说明 365

7.33.2 具体实现 366

7.33.3 范例技巧—设置时间间隔 367

7.34 自定义UIDatePicker控件(Swift版) 367

7.34.1 范例说明 367

7.34.2 具体实现 367

7.34.3 范例技巧—设置日期的范围 369

7.35 自定义“日期-时间”控件(Swift版) 370

7.35.1 范例说明 370

7.35.2 具体实现 370

7.35.3 范例技巧—显示日期选择器的

方法 370

7.36 实现一个图片浏览器(Swift版) 370

7.36.1 范例说明 370

7.36.2 具体实现 370

7.36.3 范例技巧—UIScrollView的

核心理念 371

7.37 实现一个分页图片浏览器(Swift版) 371

7.37.1 范例说明 372

7.37.2 具体实现 372

7.37.3 范例技巧—实现翻页通知的

方法 372

7.38 实现一个图片浏览器(Swift版) 373

7.38.1 范例说明 373

7.38.2 具体实现 373

7.38.3 范例技巧—给UIPageControl控件添加背景 374

7.39 设置多个分页视图(Swift版) 374

7.39.1 范例说明 374

7.39.2 具体实现 375

7.39.3 范例技巧—推出UIPageControl的

意义 376

7.40 自定义UIActivityIndicatorView控件

(Swift版) 376

7.40.1 范例说明 376

7.40.2 具体实现 376

7.40.3 范例技巧—关闭活动指示器动画的方法 377

7.41 实现5种样式的活动指示器效果

(Swift版) 377

7.41.1 范例说明 377

7.41.2 具体实现 377

7.41.3 范例技巧—设置UIActivityIndicatorView背景颜色的

方法 380

7.42 自定义设置ProgressBar的

样式(Swift版) 380

7.42.1 范例说明 380

7.42.2 具体实现 380

7.42.3 范例技巧—单独设置已走过进度的进度条颜色的方法 380

7.43 设置UIProgressView的样式(Swift版) 380

7.43.1 范例说明 381

7.43.2 具体实现 381

7.43.3 范例技巧—如何设置未走过进度的进度条颜色 381

7.44 快速搜索系统(Swift版) 381

7.44.1 范例说明 381

7.44.2 具体实现 381

7.44.3 范例技巧—4个搜索状态改变的关键函数 383

7.45 实现具有两个视图界面的搜索系统

(Swift版) 383

7.45.1 范例说明 383

7.45.2 具体实现 383

7.45.3 范例技巧—显示和隐藏tableview的4种方法 383

第8章 图形、图像和动画实战 384

8.1 实现图像的模糊效果 384

8.1.1 范例说明 384

8.1.2 具体实现 384

8.1.3 范例技巧—iOS模糊功能的发展

历程 386

8.2 滚动浏览图片 386

8.2.1 范例说明 387

8.2.2 具体实现 387

8.2.3 范例技巧—图像视图的作用 387

8.3 实现一个图片浏览器 388

8.3.1 范例说明 388

8.3.2 具体实现 388

8.3.3 范例技巧—创建一个UIImageView的方法 389

8.4 实现3个图片按钮(Swift版) 389

8.4.1 范例说明 389

8.4.2 具体实现 390

8.4.3 范例技巧—属性frame与属性

bounds 391

8.5 在屏幕中绘制一个三角形 391

8.5.1 范例说明 391

8.5.2 具体实现 391

8.5.3 范例技巧—在iOS中绘图的两种

方式 392

8.6 在屏幕中绘制一个三角形 392

8.6.1 范例说明 392

8.6.2 具体实现 392

8.6.3 范例技巧—iOS的核心图形库的绘图原理 395

8.7 绘制移动的曲线(Swift版) 395

8.7.1 范例说明 395

8.7.2 具体实现 395

8.7.3 范例技巧—OpenGL ES绘图方式的原理 395

8.8 在屏幕中实现颜色选择器/调色板功能 396

8.8.1 范例说明 396

8.8.2 具体实现 396

8.8.3 范例技巧—UIImageView和Core Graphics都可以绘图 396

8.9 绘制一个小黄人图像 396

8.9.1 范例说明 397

8.9.2 具体实现 397

8.9.3 范例技巧—绘图中的坐标系 397

8.10 实现图片、文字以及翻转效果 398

8.10.1 范例说明 398

8.10.2 具体实现 398

8.10.3 范例技巧—绘图系统的画图板

原理 399

8.11 滑动展示不同的图片 399

8.11.1 范例说明 399

8.11.2 具体实现 399

8.11.3 范例技巧—什么是图层 400

8.12 演示CALayers图层的用法(Swift版) 400

8.12.1 范例说明 400

8.12.2 具体实现 401

8.12.3 范例技巧—图层有影响绘图效果的属性 401

8.13 使用图像动画 402

8.13.1 范例说明 402

8.13.2 具体实现 402

8.13.3 范例技巧—需要提前考虑的两个

问题 405

8.14 实现UIView分类动画效果 405

8.14.1 范例说明 405

8.14.2 具体实现 405

8.14.3 范例技巧—在iOS中实现动画的

方法 406

8.15 使用动画的样式显示电量的使用情况 407

8.15.1 范例说明 407

8.15.2 具体实现 407

8.15.3 范例技巧—UIImageView实现动画的原理 410

8.16 图形图像的人脸检测处理(Swift版) 410

8.16.1 范例说明 410

8.16.2 具体实现 410

8.16.3 范例技巧—在UIImageView中和动画相关的方法和属性 411

8.17 实现一个幻灯片播放器效果 411

8.17.1 范例说明 411

8.17.2 具体实现 411

8.17.3 范例技巧—iOS系统的核心

动画 412

8.18 绘制几何图形 412

8.18.1 范例说明 412

8.18.2 具体实现 412

8.18.3 范例技巧—基本的绘图过程 413

8.19 实现对图片的旋转和缩放 414

8.19.1 范例说明 414

8.19.2 具体实现 414

8.19.3 范例技巧—总结Core Graphics中常用的绘图方法 414

8.20 使用属性动画 414

8.20.1 范例说明 415

8.20.2 具体实现 415

8.20.3 范例技巧—总结beginAnimations:context:的功能 417

8.21 给图片着色(Swift版) 417

8.21.1 范例说明 417

8.21.2 具体实现 417

8.21.3 范例技巧—总结contentMode

属性 418

8.22 实现旋转动画效果(Swift版) 419

8.22.1 范例说明 419

8.22.2 具体实现 419

8.22.3 范例技巧—总结+ (void)commitAnimations 419

8.23 绘制一个时钟(Swift版) 420

8.23.1 范例说明 420

8.23.2 具体实现 420

8.23.3 范例技巧—更改图片位置的

方法 421

8.24 绘制一个可控制的环形进度条

(Swift版) 422

8.24.1 范例说明 422

8.24.2 具体实现 422

8.24.3 范例技巧—总结旋转图像的

方法 422

8.25 实现大小图形的变换(Swift版) 423

8.25.1 范例说明 423

8.25.2 具体实现 423

8.25.3 范例技巧—图层可以在一个单独的视图中被组合起来 424

8.26 为图层增加阴影效果(Swift版) 424

8.26.1 范例说明 424

8.26.2 具体实现 424

8.26.3 范例技巧—图层是动画的基本组成部分 425

8.27 实现触摸动画效果(Swift版) 425

8.27.1 范例说明 425

8.27.2 具体实现 425

8.27.3 范例技巧—视图和图层的关系 426

8.28 实现动画效果(Swift版) 426

8.28.1 范例说明 427

8.28.2 具体实现 427

8.28.3 范例技巧—实现多个动画的

方法 429

8.29 在屏幕中实现模糊效果 429

8.29.1 范例说明 429

8.29.2 具体实现 429

8.29.3 范例技巧—避免将UIVisualEffectView的Alpha设置为小于1.0的值 430

8.30 给指定图片实现模糊效果 430

8.30.1 范例说明 431

8.30.2 具体实现 431

8.30.3 范例技巧—初始化一个UIVisualEffectView对象的方法 433

8.31 编码实现指定图像的模糊效果

(Swift版) 433

8.31.1 范例说明 433

8.31.2 具体实现 433

8.31.3 范例技巧—UIBlurEffect和UIVibrancyEffect的区别 434

第9章 多媒体应用实战 435

9.1 播放声音文件 435

9.1.1 范例说明 435

9.1.2 具体实现 435

9.1.3 范例技巧—访问声音服务 438

9.2 播放列表中的音乐(Swift版) 438

9.2.1 范例说明 438

9.2.2 具体实现 439

9.2.3 范例技巧—iOS系统的播放声音

服务 442

9.3 使用iOS的提醒功能 442

9.3.1 范例说明 442

9.3.2 具体实现 442

9.3.3 范例技巧—创建包含多个按钮的提醒视图 444

9.4 实现两种类型的振动效果(Swift版) 444

9.4.1 范例说明 444

9.4.2 具体实现 444

9.4.3 范例技巧—System Sound Services

支持的3种通知 445

9.5 使用Media Player播放视频 445

9.5.1 范例说明 445

9.5.2 具体实现 445

9.5.3 范例技巧—iOS系统的多媒体播放

机制 447

9.6 边下载边播放视频 447

9.6.1 范例说明 447

9.6.2 具体实现 447

9.6.3 范例技巧—Media Player框架

介绍 449

9.7 播放指定的视频(Swift版) 449

9.7.1 范例说明 449

9.7.2 具体实现 449

9.7.3 范例技巧—Media Player的原理 451

9.8 播放指定的视频 451

9.8.1 范例说明 451

9.8.2 具体实现 452

9.8.3 范例技巧—官方建议使用AV Foundation框架 452

9.9 播放和暂停指定的MP3文件

(Swift版) 452

9.9.1 范例说明 453

9.9.2 具体实现 453

9.9.3 范例技巧—牢记开发前的准备

工作 453

9.10 获取相机Camera中的图片并缩放 453

9.10.1 范例说明 454

9.10.2 具体实现 454

9.10.3 范例技巧—图像选择器的重要

功能 457

9.11 选择相机中的照片(Swift版) 457

9.11.1 范例说明 457

9.11.2 具体实现 457

9.11.3 范例技巧—使用图像选择器的通用流程 459

9.12 实现一个多媒体的应用程序 459

9.12.1 范例说明 459

9.12.2 具体实现 460

9.12.3 范例技巧—系统总体规划 462

9.13 实现一个音乐播放器(Swift版) 462

9.13.1 范例说明 462

9.13.2 具体实现 463

9.13.3 范例技巧—使用AV Foundation框架前的准备 463

9.14 实现一个美观的音乐播放器

(Swift版) 463

9.14.1 范例说明 464

9.14.2 具体实现 464

9.14.3 范例技巧—使用AV音频播放器的通用流程 465

9.15 实现视频播放和调用照片库

功能(Swift版) 466

9.15.1 范例说明 466

9.15.2 具体实现 466

9.15.3 范例技巧—总结Media Player框架中的常用类 467

9.16 播放指定的MP4视频(Swift版) 467

9.16.1 范例说明 468

9.16.2 具体实现 468

9.16.3 范例技巧—使用多媒体播放器前的准备 468

9.17 播放和暂停指定的MP3(Swift版) 468

9.17.1 范例说明 468

9.17.2 具体实现 468

9.17.3 范例技巧—总结使用AV录音机的基本流程 470

9.18 实现一个图片浏览器(Swift版) 470

9.18.1 范例说明 470

9.18.2 具体实现 471

9.18.3 范例技巧—图像选择器控制器

委托 472

9.19 实现一个智能图片浏览器(Swift版) 473

9.19.1 范例说明 473

9.19.2 具体实现 473

9.19.3 范例技巧—UIImagePickerController在iPhone和iPad上的区别 475

第 10章 互联网应用实战 476

10.1 调用JavaScript脚本 476

10.1.1 范例说明 476

10.1.2 具体实现 476

10.1.3 范例技巧—Web视图的作用 477

10.2 动态改变字体的大小 477

10.2.1 范例说明的 477

10.2.2 具体实现 478

10.2.3 范例技巧—总结Web视图可以实现的文件 478

10.3 实现一个迷你浏览器工具 479

10.3.1 范例说明 479

10.3.2 具体实现 479

10.3.3 范例技巧—总结使用Web视图的基本流程 480

10.4 加载显示指定的网页(Swift版) 480

10.4.1 范例说明 480

10.4.2 具体实现 481

10.4.3 范例技巧—显示内容的另一种解决方案 481

10.5 使用可滚动视图控件(Swift版) 482

10.5.1 范例说明 482

10.5.2 具体实现 482

10.5.3 范例技巧—本项目规划 483

10.6 使用Message UI发送邮件(Swift版) 483

10.6.1 范例说明 483

10.6.2 具体实现 483

10.6.3 范例技巧—总结使用框架Message UI的基本流程 484

10.7 开发一个Twitter客户端(Swift版) 485

10.7.1 范例说明 485

10.7.2 具体实现 485

10.7.3 范例技巧—总结使用Twitter框架的基本流程 486

10.8 联合使用地址簿、电子邮件、Twitter和地图(Swift版) 487

10.8.1 范例说明 487

10.8.2 具体实现 487

10.8.3 范例技巧—总结为iOS项目添加第三方框架的方法 488

10.9 获取网站中的照片信息(Swift版) 489

10.9.1 范例说明 489

10.9.2 具体实现 489

10.9.3 范例技巧—手机和云平台之间传递的通用数据格式 492

10.10 快速浏览不同的站点(Swift版) 492

10.10.1 范例说明 493

10.10.2 具体实现 493

10.10.3 范例技巧—控制屏幕中的网页的

方法 493

10.11 实现一个网页浏览器(Swift版) 493

10.11.1 范例说明 493

10.11.2 具体实现 493

10.11.3 范例技巧—在网页中实现触摸处

理的方法 494

10.12 自动缓存网页数据 494

10.12.1 范例说明 494

10.12.2 具体实现 494

10.12.3 范例技巧—总结UIWebView中主

要的委托方法 495

10.13 实现一个Web浏览器 495

10.13.1 范例说明 495

10.13.2 具体实现 495

10.13.3 范例技巧—MIME在浏览器中的

作用 498

10.14 实现Cookie功能的登录系统

(Swift版) 499

10.14.1 范例说明 499

10.14.2 具体实现 499

10.14.3 范例技巧—本实例的两个

难点 501

10.15 加载指定的网页文件 501

10.15.1 范例说明 501

10.15.2 具体实现 501

10.15.3 范例技巧—总结UIWebView的

优点 502

10.16 实现Objective-C和JS桥接功能 503

10.16.1 范例说明 503

10.16.2 具体实现 503

10.16.3 范例技巧—iOS中**常用的桥接

开发 504

10.17 实现微信样式的导航效果 505

10.17.1 范例说明 505

10.17.2 具体实现 505

10.17.3 范例技巧—加载本地文本文件的

通用方法 507

10.18 实现和JavaScript的交互 508

10.18.1 范例说明 508

10.18.2 具体实现 508

10.18.3 范例技巧—总结UIWebViewDelegate的代理方法 509

10.19 浏览网页返回时显示“关闭”按钮 509

10.19.1 范例说明 509

10.19.2 具体实现 510

10.19.3 范例技巧—UIWebView加载PDF

文件的方法 511

第 11章 地图定位应用实战 512

11.1 定位显示当前的位置信息(Swift版) 512

11.1.1 范例说明 512

11.1.2 具体实现 512

11.1.3 范例技巧—iOS实现位置监听功能的技术方案 515

11.2 在地图中定位当前的位置

信息(Swift版) 516

11.2.1 范例说明 516

11.2.2 具体实现 516

11.2.3 范例技巧—实现定位功能

需要的类 517

11.3 创建一个支持定位的应用

程序(Swift版) 517

11.3.1 范例说明 517

11.3.2 具体实现 518

11.3.3 范例技巧—规划变量和连接 519

11.4 定位当前的位置信息 519

11.4.1 范例说明 519

11.4.2 具体实现 519

11.4.3 范例技巧—总结实现位置定位的基本流程 520

11.5 在地图中绘制导航线路 522

11.5.1 范例说明 522

11.5.2 具体实现 522

11.5.3 范例技巧—Map Kit的作用 524

11.6 实现一个轨迹记录仪(Swift版) 524

11.6.1 范例说明 524

11.6.2 具体实现 524

11.6.3 范例技巧—总结Map Kit的

开发流程 528

11.7 实现一个位置跟踪器(Swift版) 529

11.7.1 范例说明 529

11.7.2 具体实现 529

11.7.3 范例技巧—地图视图区域的常见

操作 531

11.8 在地图中搜索和选择附近

位置(Swift版) 532

11.8.1 范例说明 532

11.8.2 具体实现 532

11.8.3 范例技巧—总结给地图添加

标注的方法 533

11.9 获取当前的经度和纬度 534

11.9.1 范例说明 534

11.9.2 具体实现 534

11.9.3 范例技巧—总结市面中常用的坐标

系统 534

11.10 在地图中添加大头针提示 535

11.10.1 范例说明 535

11.10.2 具体实现 535

11.10.3 范例技巧—删除地图标注的

方法 536

11.11 在地图中标注移动的飞机 537

11.11.1 范例说明 537

11.11.2 具体实现 537

11.11.3 范例技巧—总结获取当前位置的

基本方法 538

11.12 在地图中定位当前位置(Swift版) 539

11.12.1 范例说明 539

11.12.2 具体实现 539

11.12.3 范例技巧—总结位置管理器

委托 541

11.13 实现一个位置管理器(Swift版) 542

11.13.1 范例说明 542

11.13.2 具体实现 542

11.13.3 范例技巧—处理定位错误的

方法 544

第 12章 传感器、触摸和交互实战 545

12.1 实现界面自适应(Swift版) 545

12.1.1 范例说明 545

12.1.2 具体实现 545

12.1.3 范例技巧—多点触摸和手势识别

基础 546

12.2 创建可旋转和调整大小的界面 547

12.2.1 范例说明 547

12.2.2 具体实现 547

12.2.3 范例技巧—测试旋转的方法 548

12.3 在旋转时调整控件 549

12.3.1 范例说明 549

12.3.2 具体实现 549

12.3.3 范例技巧—当Interface Builder不满足需求时的解决方案 551

12.4 管理横向和纵向视图(Swift版) 551

12.4.1 范例说明 551

12.4.2 具体实现 552

12.4.3 范例技巧—视图太复杂时的

解决方案 553

12.5 实现屏幕视图的自动切换(Swift版) 553

12.5.1 范例说明 553

12.5.2 具体实现 553

12.5.3 范例技巧—界面自动旋转的基本

知识 554

12.6 使用触摸的方式移动当前视图 554

12.6.1 范例说明 554

12.6.2 具体实现 554

12.6.3 范例技巧—总结常用的手势

识别类 555

12.7 触摸挪动彩色方块(Swift版) 555

12.7.1 范例说明 555

12.7.2 具体实现 555

12.7.3 范例技巧—触摸识别的意义 559

12.8 实现一个手势识别器 559

12.8.1 范例说明 559

12.8.2 具体实现 559

12.8.3 范例技巧—规划本实例的变量和

连接 559

12.9 识别手势并移动屏幕中的

方块(Swift版) 560

12.9.1 范例说明 560

12.9.2 具体实现 560

12.9.3 范例技巧—iOS触摸处理的

基本含义 562

12.10 使用Force Touch 563

12.10.1 范例说明 563

12.10.2 具体实现 563

12.10.3 范例技巧—Force Touch介绍 564

12.11 启动Force Touch触控面板 564

12.11.1 范例说明 564

12.11.2 具体实现 564

12.11.3 范例技巧—总结常用的

Force Touch API 564

12.12 实现界面旋转的自适应

处理(Swift版) 565

12.12.1 范例说明 565

12.12.2 具体实现 565

12.12.3 范例技巧—实现界面自动旋转的

基本方法 566

12.13 实现手势识别(Swift版) 566

12.13.1 范例说明 566

12.13.2 具体实现 566

12.13.3 范例技巧—总结iOS的屏幕

触摸操作 567

12.14 识别手势并移动图像(Swift版) 567

12.14.1 范例说明 568

12.14.2 具体实现 568

12.14.3 范例技巧—如何调整框架 568

12.15 实现一个绘图板系统(Swift版) 569

12.15.1 范例说明 569

12.15.2 具体实现 569

12.15.3 范例技巧—如何切换视图 571

12.16 使用Force Touch技术(Swift版) 571

12.16.1 范例说明 571

12.16.2 具体实现 571

12.16.3 范例技巧—挖掘Force Touch技术

的方法 572

12.17 实现Touch ID身份验证 573

12.17.1 范例说明 573

12.17.2 具体实现 573

12.17.3 范例技巧—什么是Touch ID 574

12.18 演示触摸拖动操作 574

12.18.1 范例说明 574

12.18.2 具体实现 574

12.18.3 范例技巧—总结接收触摸的

方法 575

12.19 实现一个绘图板系统(Swift版) 576

12.19.1 范例说明 576

12.19.2 具体实现 576

12.19.3 范例技巧—实现多点触摸的

方法 578

12.20 实现手势识别 578

12.20.1 范例说明 578

12.20.2 具体实现 578

12.20.3 范例技巧—总结iOS触摸处理

事件 579

12.21 实现单击手势识别器 580

12.21.1 范例说明 580

12.21.2 具体实现 580

12.21.3 范例技巧—总结触摸和响应链

操作 581

12.22 获取单击位置的坐标 581

12.22.1 范例说明 582

12.22.2 具体实现 582

12.22.3 范例技巧—总结iOS中的手势

操作 584

第 13章 硬件设备操作实战 586

13.1 检测设备的倾斜和旋转 586

13.1.1 范例说明 586

13.1.2 具体实现 586

13.1.3 范例技巧—本实例的应用程序

逻辑 587

13.2 使用Motion传感器(Swift版) 587

13.2.1 范例说明 587

13.2.2 具体实现 587

13.2.3 范例技巧—加速剂和陀螺仪的

作用 588

13.3 检测设备的朝向 588

13.3.1 范例说明 588

13.3.2 具体实现 589

13.3.3 范例技巧—需要解决的两个

问题 589

13.4 传感器综合练习(Swift版) 589

13.4.1 范例说明 590

13.4.2 具体实现 590

13.4.3 范例技巧—分析核心文件的

功能 592

13.5 使用Touch ID认证 592

13.5.1 范例说明 592

13.5.2 具体实现 593

13.5.3 范例技巧—Touch ID的官方

资料 594

13.6 使用Touch ID密码和指纹认证 594

13.6.1 范例说明 594

13.6.2 具体实现 594

13.6.3 范例技巧—总结开发Touch ID应用

程序的基本步骤 598

13.7 Touch ID认证的综合演练 599

13.7.1 范例说明 599

13.7.2 具体实现 599

13.7.3 范例技巧—指纹识别的

安全性 601

13.8 使用CoreMotion传感器(Swift版) 601

13.8.1 范例说明 601

13.8.2 具体实现 601

13.8.3 范例技巧—硬件设备的

必要性 604

13.9 获取加速度的值(Swift版) 604

13.9.1 范例说明 604

13.9.2 具体实现 604

13.9.3 范例技巧—总结使用加速计的

流程 605

13.10 演示CoreMotion的加速旋转功能 606

13.10.1 范例说明 606

13.10.2 具体实现 606

13.10.3 范例技巧—总结

UIAccelerometer类 607

13.11 CoreMotion远程测试(Swift版) 609

13.11.1 范例说明 609

13.11.2 具体实现 609

13.11.3 范例技巧—陀螺仪的工作

原理 612

第 14章 游戏应用实战 613

14.1 开发一个SpriteKit游戏 613

14.1.1 范例说明 613

14.1.2 具体实现 613

14.1.3 范例技巧—SpriteKit的优点和

缺点 621

14.2 开发一个四子棋游戏(Swift版) 622

14.2.1 范例说明 622

14.2.2 具体实现 622

14.2.3 范例技巧—SpriteKit、Cocos2D、

Cocos2D-X和Unity的选择 626

14.3 使用SpriteKit框架 626

14.3.1 范例说明 626

14.3.2 具体实现 627

14.3.3 范例技巧—总结开发游戏的

流程 628

14.4 开发一个SpriteKit游戏(Swift版) 628

14.4.1 范例说明 629

14.4.2 具体实现 629

14.4.3 范例技巧—一 款游戏产品受到的

限制 631

14.5 开发一个小球游戏(Swift版) 631

14.5.1 范例说明 631

14.5.2 具体实现 632

14.5.3 范例技巧—游戏的大纲策划 634

第 15章 WatchOS 2开发实战 635

15.1 实现Apple Watch界面布局 635

15.1.1 范例说明 635

15.1.2 具体实现 635

15.1.3 范例技巧—Apple Watch介绍 638

15.2 演示Apple Watch的日历事件 639

15.2.1 范例说明 639

15.2.2 具体实现 639

15.2.3 范例技巧—总结Apple Watch的3大核心功能 641

15.3 在手表中控制小球的移动 641

15.3.1 范例说明 642

15.3.2 具体实现 642

15.3.3 范例技巧—学习WatchOS 2开发的官方资料 643

15.4 实现一个Watch录音程序 643

15.4.1 范例说明 643

15.4.2 具体实现 644

15.4.3 范例技巧—WatchKit的核心

功能 646

15.5 综合性智能手表管理系统(Swift版) 647

15.5.1 范例说明 647

15.5.2 具体实现 647

15.5.3 范例技巧—快速搭建WatchKit开发环境 652

15.6 移动视频播放系统(Swift版) 653

15.6.1 范例说明 653

15.6.2 具体实现 653

15.6.3 范例技巧—总结WatchKit架构 655

第 16章 开发框架实战 657

16.1 实现一个HomeKit控制程序 657

16.1.1 范例说明 657

16.1.2 具体实现 657

16.1.3 范例技巧—苹果HomeKit如何牵动全国智能硬件格局 660

16.2 实现一个智能家居控制程序

(Swift版) 660

16.2.1 范例说明 660

16.2.2 具体实现 661

16.2.3 范例技巧—HomeKit给开 发者和厂家提供的巨大机会 663

16.3 检测一 天消耗掉的能量 664

16.3.1 范例说明 664

16.3.2 具体实现 664

16.3.3 范例技巧—HomeKit应用程序的

层次模型 669

16.4 心率检测(Swift版) 669

16.4.1 范例说明 670

16.4.2 具体实现 670

16.4.3 范例技巧—HomeKit程序架构

模式 673

第 17章 移动Web应用实战 675

17.1 在 iOS模拟器中测试网页 675

17.1.1 范例说明 675

17.1.2 具体实现 675

17.1.3 范例技巧—移动设备将占据未来计算机市场 677

17.2 使用页面模板 677

17.2.1 范例说明 677

17.2.2 具体实现 677

17.2.3 范例技巧—组件的增强样式 678

17.3 使用多页面模板 678

17.3.1 范例说明 678

17.3.2 具体实现 678

17.3.3 范例技巧—设置内部页面的

标题 679

17.4 使用Ajax驱动导航 679

17.4.1 范例说明 679

17.4.2 具体实现 680

17.4.3 范例技巧—分析jQuery Mobile的

处理流程 680

17.5 实现基本对话框效果 681

17.5.1 范例说明 681

17.5.2 具体实现 681

17.5.3 范例技巧—使用操作表 682

17.6 实现警告框 683

17.6.1 范例说明 683

17.6.2 具体实现 683

17.6.3 范例技巧—使用多选项

操作表 684

17.7 实现竖屏和横屏自适应效果 684

17.7.1 范例说明 684

17.7.2 具体实现 684

17.7.3 范例技巧—WebKit的媒体扩展 685

17.8 实现全屏显示效果 685

17.8.1 范例说明 685

17.8.2 具体实现 685

17.8.3 范例技巧—可以用于定位页眉的

3种样式 686

17.9 实现只有图标的按钮效果 687

17.9.1 范例说明 687

17.9.2 具体实现 687

17.9.3 范例技巧—在页眉中使用

分段控件 688

17.10 实现回退按钮效果 688

17.10.1 范例说明 688

17.10.2 具体实现 689

17.10.3 范例技巧—在页眉中添加回退

链接 690

17.11 在表单中输入文本 690

17.11.1 范例说明 690

17.11.2 具体实现 690

17.11.3 范例技巧—将输入字段与其语义

类型关联 692

17.12 动态输入文本 692

17.12.1 范例说明 692

17.12.2 具体实现 692

17.12.3 范例技巧—使用选择菜单 693

17.13 实现一个自定义选择菜单效果 693

17.13.1 范例说明 693

17.13.2 具体实现 694

17.13.3 范例技巧—占位符选项 695

17.14 使用内置列表 695

17.14.1 范例说明 695

17.14.2 具体实现 695

17.14.3 范例技巧—使用列表分割线 696

17.15 实现缩略图列表效果 696

17.15.1 范例说明 696

17.15.2 具体实现 696

17.15.3 范例技巧—使用拆分按钮

列表 698

17.16 实现可折叠设置效果 698

17.16.1 范例说明 698

17.16.2 具体实现 698

17.16.3 范例技巧—使用CSS设置样式 700

17.17 使用网络连接API 700

17.17.1 范例说明 700

17.17.2 具体实现 700

17.17.3 范例技巧—使用指南针API 701

17.18 预加载一个网页 702

17.18.1 范例说明 702

17.18.2 具体实现 702

17.18.3 范例技巧—Pagebeforechange

事件 702

17.19 开发一个Web版的电话簿系统 703

17.19.1 范例说明 703

17.19.2 具体实现 703

17.19.3 范例技巧—使用页面初始化事件 Page initialization events 707

详情

本书先讲解最新的Swift语言的基本知识和高级特性,然后通过实例全面讲解了iOS9 案例开发的全过程,包括智能家居、健康应用、苹果手表、游戏开发等领域。每一个实例都具有极强的代表性,能够很好的演示每一个知识点的具体用法。

图书摘要

相关图书

Android Gradle权威指南
Android Gradle权威指南
爱上Android
爱上Android
深入解析Android 虚拟机
深入解析Android 虚拟机
iOS 10 开发指南
iOS 10 开发指南
Swift入门经典(第2版)
Swift入门经典(第2版)
Android系统安全和反编译实战
Android系统安全和反编译实战

相关文章

相关课程