疯狂iOS讲义(基础篇)(含光盘1张)
  • 推荐0
  • 收藏1
  • 浏览475

疯狂iOS讲义(基础篇)(含光盘1张)

李刚 , 广州捷途软件科技有限公司 , 李刚 (作者) 

  • 书  号:978-7-121-28793-0
  • 出版日期:2016-05-24
  • 页  数:740
  • 开  本:16(185*260)
  • 出版状态:上市销售
  • 维护人:张月萍
本书基于《疯狂iOS讲义(上)》第2版升级而来,已真正升级成Swift、Objective-C双语讲解。本书所有案例(除前面介绍Objective-C语法部分之外)全部都提供Swift、Objective-C两种语言的版本。本书以最新的iOS 9.2、Xcode 7.2为平台,全面介绍了iOS应用开发的基础知识。书中每个案例、每个截图都全面升级到iOS 9.2。本书全面、细致地介绍了Objective-C的面向对象语法、Foundation框架的核心类库用法、文件 IO体系等,详细讲解了iOS应用开发的基本理论,以及iOS应用的MVC设计和事件处理编程,重点介绍了iOS界面编程、iOS应用的生命周期、Quartz 2D绘图、坐标变换、Core Image滤镜等内容,掌握这些基础内容之后,即可开发出基础的iOS App应用和简单的iOS游戏。本书最后介绍了一个疯狂连连看的实例。
本书详细介绍了iOS 9新增的UIAlertController、UIStackView控件,其中UIStackView正是为了自适应不同尺寸屏幕而设计的控件,可用于取代早期iOS开发中的约束(约束实在是太难以管理了)。本书还重点介绍了Xcode 7提供的Storyboard Reference,通过使用Storyboard Reference,可以对大型iOS App的界面设计进行分解、重构,从而保证项目具有更好的可维护性。
本书从“项目驱动”的角度来讲授理论,全书一共包括近百个实例,这些示范性的实例既可帮助读者更好地理解各知识点在实际开发中的应用,也可供读者在实际开发时作为参考,拿来就用。如果读者在阅读本书时遇到了技术问题,可以登录疯狂Java联盟(http://www.crazyit.org)发帖,笔者将会及时予以解答。
本书为所有打算深入掌握iOS编程的读者而编写,适合各种层次的iOS学习者和开发者阅读,也适合作为大学教育、培训机构的iOS教材。但如果只是想简单涉猎iOS应用开发,则本书过于庞大,不适合阅读。
前 言

移动互联网热潮在全世界引起了巨大反响,移动互联网正在改变着传统互联网的格局,全世界的IT公司争相将业务重心向移动互联网转型,移动互联网业务也成为业内最大的利润增长点。
Apple公司的iOS系统作为与Android并驾齐驱的操作系统,具有非常完善的生态圈,而且用户具有良好的付费习惯,吸引了大量的专业软件和小团队,甚至包括个人用户。
Apple公司提供的App Store作为应用程序市场,它为缺乏市场运作能力的第三方开发商和草根开发者赋予了新的商业机会:开发商和草根开发者只需专注于应用的开发,而市场和销售则交给Apple公司管理。在这种模式下,即使小型团队,甚至个人开发者也可以创造财富神话。
Apple公司在全世界IT行业是一个极富传奇色彩的公司,它一度成为全球市值最大的IT公司,Apple公司的产品对于年轻人始终具有神奇的魔力,尤其是iPhone和iPad两款广为人知的产品,更是让无数追求时尚的年轻人为之痴迷。目前Apple公司也在逐步推出iTV(基于iOS系统的智能电视)、iWatch(智能手表)等各种个人电子消费品,这些产品也吊足了时尚一族的胃口。Apple公司独特的设计、市场运作方式、商业模式和公司经营管理理念,也是众多IT公司竞相研究、模仿的对象。
本书基于《疯狂iOS讲义(上)》第2版升级而来,已真正升级成Swift、Objective-C双语讲解。本书所有案例(除前面介绍Objective-C语法部分之外)全部都提供Swift、Objective-C两种语言的版本。
本书基于最新的iOS 9.2,并采用最新的Xcode 7.2作为开发平台。书中每个案例、每个截图都是基于iOS 9.2的。本书详细介绍了iOS 9新增的UIAlertController、UIStackView控件,其中UIStackView正是为了自适应不同尺寸屏幕而设计的控件,可用于取代早期iOS开发中的约束(约束实在是太难以管理了)。本书还重点介绍了Xcode 7提供的Storyboard Reference,通过使用Storyboard Reference,可以对大型iOS App的界面设计进行分解、重构,从而保证项目具有更好的可维护性。
本书有什么特点
本书是一本介绍iOS应用开发的实用图书,全面介绍了iOS 9.2平台上应用开发各方面的知识。与市面上有些介绍iOS编程的图书不同,本书并没有花太多篇幅介绍Apple公司、iOS的发展历史(因为这些内容到处都是),完全没有介绍Apple Store(因为它只是一个交易网站,与iOS开发无关,但有些图书甚至用整整一章来介绍它)。
本书只用了一章来介绍如何搭建iOS开发环境和Xcode工具的用法。本书内容大致可分为两个部分:
第一部分详细介绍了Objective-C编程语言,本书在介绍Objective-C基本语法、面向对象语法时没有过多地使用IDE工具,而是带领读者使用最基本的文本编辑器学习编程,务必使读者真正掌握Objective-C语法。
第二部分介绍了iOS开发的基础,详细介绍了iOS项目的结构、各文件的作用及其调用关系,并归纳了iOS应用的MVC设计,在代码中获取UI控件的三种方式(必须先获取UI控件,然后即可修改它来更新用户界面),iOS应用事件处理的三种方式,通过这种方式可以让读者快速掌握iOS编程的思路。第二部分的重点是iOS应用的UI界面开发和图形、图像处理——全书300多页、近100个实例全面、系统地介绍了iOS的各种UI控件的功能、用法及其定制方法,并通过相应的实例程序给出了示范。
需要说明的是,本书只是一本介绍iOS应用开发的图书,不是一本关于所谓“思想”的书,不要指望学习本书能提高你所谓的“iOS思想”,所以奉劝那些希望提高编程思想的读者不要阅读本书。
本书更不是一本看完之后可以“吹嘘、炫耀”的书——因为本书并没有堆砌一堆“深奥”的新名词、一堆“高深”的思想,本书保持了“疯狂体系”的一贯风格:操作步骤详细,编程思路清晰,语言平实。只要读者想学习iOS开发,无须担心没有Apple电脑(网络上使用普通电脑装黑苹果的文章铺天盖地),无须担心没有iPhone(Xcode集成的模拟器在大部分场景下完全可以胜任开发)——即使读者以前没有编程基础,但只要有决心和毅力,阅读本书也不会有任何问题(本书从最基本的Objective-C语法开始讲起);只要你有决心和毅力,就可以掌握iOS应用开发。
认真看完本书,把书中所有示例都练习一遍,本书带给你的只是9个字:“看得懂、学得会、做得出”。本书不能让你认识一堆新名词,只会让你学会实际的iOS应用开发。本书最后综合运用前面介绍的UI编程、绘图等知识编写了一个疯狂连连看的小游戏,因此认真阅读本书,掌握书中知识即可开发出各种棋类、牌类、益智类的小游戏。
不管怎样,只要读者在阅读本书时遇到知识上的问题,都可以登录疯狂Java联盟(http://www.crazyit.org)与广大学习者交流,笔者也会通过该平台与大家一起交流、学习。
本书还具有如下几个特点:
1.知识全面,覆盖面广
本书深入阐述了Objective-C的基本语法,包括类、对象、方法、成员变量、KVC、KVO、继承和多态等面向对象的基础知识,也包括类别(category)、扩展(extension)、协议与委托、内存管理与ARC等Objective-C的高级知识。本书详细介绍了iOS全部图形界面控件的功能和用法,事件处理机制,iOS图形、图像处理,内容全面而深入,覆盖面非常广。
2.内容实际,实用性强
本书并不局限于枯燥的理论介绍,而是采用了“项目驱动”的方式来讲授知识点,全书包含近百个实例,几乎每个知识点都可以找到对应的参考实例。本书最后还提供了“疯狂连连看”应用,具有极高的参考价值。
3.讲解详细,上手容易
本书保持了“疯狂体系”的一贯风格:操作步骤详细,编程思路清晰,语言平实。只要读者有学习的决心和毅力,掌握本书内容就能打下扎实的iOS开发基础。
本书写给谁看
本书为所有打算深入掌握iOS编程的读者而编写,适合各种层次的iOS学习者和开发者阅读,也适合作为大学教育、培训机构的iOS教材。但如果只是想简单涉猎iOS应用开发,则本书过于庞大,不适合阅读。

2016-03-01

目录

第1章 iOS应用与开发环境 1
1.1 iOS简介及其开发语言 2
1.1.1 Swift简介 2
1.1.2 Objective-C简介 2
1.1.3 iOS简介 3
1.2 搭建iOS开发环境 4
1.2.1 下载并安装Xcode和SDK 4
1.3 第一个Objective-C程序 7
1.3.1 使用文本编辑器开发Objective-C
程序 7
1.3.2 使用Xcode工具开发Objective-C
程序 9
1.4 熟悉Xcode 11
1.4.1 创建iOS项目 11
1.4.2 熟悉导航面板 13
1.4.3 熟悉检查器面板 16
1.4.4 熟悉库面板 17
1.4.5 使用Xcode的帮助系统 19
1.5 本章小结 21
第2章 数据类型和运算符 22
2.1 注释 23
2.2 标识符和变量 24
2.2.1 分隔符 24
2.2.2 标识符规则 26
2.2.3 Objective-C关键字 26
2.3 数据类型分类 26
2.4 基本数据类型 27
2.4.1 整型 27
2.4.2 NSLog输出函数及格式字符 28
2.4.3 字符型 30
2.4.4 浮点型 31
2.4.5 枚举型 32
2.4.6 BOOL类型 34
2.5 类型转换 35
2.5.1 自动类型转换 36
2.5.2 强制类型转换 37
2.5.3 表达式类型的自动提升 37
2.6 运算符 38
2.6.1 算术运算符 38
2.6.2 赋值运算符 41
2.6.3 位运算符 41
2.6.4 扩展后的赋值运算符 43
2.6.5 比较运算符 44
2.6.6 逻辑运算符 45
2.6.7 逗号运算符 45
2.6.8 三目运算符 46
2.6.9 运算符的结合性和优先级 47
2.7 本章小结 48
第3章 流程控制与数组 49
3.1 顺序结构 50
3.2 分支结构 50
3.2.1 if条件语句 50
3.2.2 switch分支语句 54
3.3 循环结构 56
3.3.1 while循环语句 56
3.3.2 do while循环语句 58
3.3.3 for循环 59
3.3.4 嵌套循环 62
3.4 控制循环结构 63
3.4.1 使用break结束循环 63
3.4.2 使用continue结束本次循环 64
3.4.3 使用return结束函数 64
3.5 goto语句 65
3.6 数组 67
3.6.1 定义数组 67
3.6.2 数组的显式初始化 68
3.6.3 使用数组 69
3.6.4 多维数组 70
3.6.5 多维数组的初始化 71
3.6.6 字符数组、字符串与结束标志 77
3.6.7 输出字符串和字符串函数 78
3.6.8 数组的应用举例 80
3.7 本章小结 81
第4章 C语言特性 82
4.1 函数 83
4.1.1 定义函数 83
4.1.2 函数声明 86
4.1.3 函数的参数传递机制 87
4.1.4 递归函数 91
4.1.5 数组作为函数参数 92
4.1.6 内部函数与外部函数 96
4.2 局部变量与全局变量 98
4.2.1 局部变量 98
4.2.2 全局变量 99
4.2.3 外部全局变量与内部全局变量 101
4.2.4 动态存储与静态存储 102
4.3 预处理 105
4.3.1 使用#define、#undef执行
宏定义 105
4.3.2 带参数的宏定义 107
4.3.3 使用#ifdef、#ifndef、#else、
#endif执行条件编译 108
4.3.4 使用#if、#elif、#else、#endif
执行条件编译 110
4.3.5 #include与#import 111
4.4 指针 112
4.4.1 指针的概念 112
4.4.2 指针变量及其基本用法 113
4.4.3 指针变量作为函数参数 115
4.5 指针与数组 117
4.5.1 指向数组的指针变量 117
4.5.2 指针运算 118
4.5.3 数组变量作为函数参数 120
4.5.4 指向多维数组的指针变量 122
4.6 字符串与指针 124
4.6.1 使用字符指针表示字符串 125
4.6.2 字符指针作为函数参数 125
4.7 函数与指针 127
4.7.1 用函数指针变量调用函数 127
4.7.2 用函数指针变量作为函数参数 128
4.7.3 返回指针的函数 129
4.8 指针数组和指向指针变量的指针 131
4.8.1 指针数组与main()函数形参 131
4.8.2 指向指针变量的指针 134
4.9 结构体 134
4.9.1 定义结构体 134
4.9.2 typedef语句 136
4.9.3 初始化结构体变量 138
4.9.4 结构体数组 139
4.10 块 140
4.10.1 块的基本语法 140
4.10.2 块与局部变量 141
4.10.3 直接使用块作为参数 142
4.10.4 使用typedef定义块类型 143
4.11 本章小结 144
第5章 面向对象(上) 145
5.1 类和对象 146
5.1.1 定义类 146
5.1.2 对象的产生和使用 150
5.1.3 对象和指针 152
5.1.4 self关键字 154
5.1.5 id类型 157
5.2 方法详解 158
5.2.1 方法的所属性 158
5.2.2 形参个数可变的方法 159
5.3 成员变量 160
5.3.1 成员变量及其运行机制 160
5.3.2 模拟类变量 163
5.3.3 单例(Singleton)模式 164
5.4 隐藏和封装 165
5.4.1 理解封装 165
5.4.2 使用访问控制符 165
5.4.3 理解@package访问控制符 169
5.4.4 合成存取方法 170
5.4.5 使用点语法访问属性 176
5.5 键值编码(KVC)与键值监听
(KVO) 176
5.5.1 简单的KVC 177
5.5.2 处理不存在的key 179
5.5.3 处理nil值 181
5.5.4 key路径 182
5.5.5 键值监听(KVO) 184
5.6 对象初始化 187
5.6.1 为对象分配空间 187
5.6.2 初始化方法与对象初始化 187
5.6.3 便利的初始化方法 189
5.7 类的继承 191
5.7.1 继承的特点 191
5.7.2 重写父类的方法 193
5.7.3 super关键字 194
5.8 多态 197
5.8.1 多态性 197
5.8.2 指针变量的强制类型转换 200
5.8.3 判断指针变量的实际类型 201
5.9 本章小结 202
第6章 面向对象(下) 203
6.1 Objective-C的包装类 204
6.1.1 它们不是包装类 204
6.1.2 NSValue和NSNumber 205
6.2 处理对象 206
6.2.1 打印对象和description方法 206
6.2.2 ==和isEqual:方法 208
6.3 类别与扩展 212
6.3.1 类别(category) 213
6.3.2 利用类别对类进行模块化设计 215
6.3.3 使用类别来调用私有方法 215
6.3.4 扩展(extension) 217
6.4 协议(protocol)与委托 219
6.4.1 规范、协议与接口 219
6.4.2 使用类别实现非正式协议 220
6.4.3 正式协议的定义 221
6.4.4 遵守(实现)协议 222
6.4.5 协议与委托(delegate) 225
6.5 使用@try处理异常 228
6.5.1 使用@try...@catch...@finally
捕获异常 229
6.5.2 访问异常信息 231
6.5.3 使用@finally回收资源 232
6.5.4 抛出异常与自定义异常类 233
6.6 Objective-C反射机制 235
6.6.1 获得Class 235
6.6.2 检查继承关系 236
6.6.3 动态调用方法 237
6.7 手动内存管理 241
6.7.1 对象的引用计数 242
6.7.2 对象所属权 245
6.7.3 方法中的保留和释放 247
6.7.4 使用自动释放池 248
6.7.5 自动释放池的销毁时机与
工作过程 250
6.7.6 临时对象与事件循环中的
自动释放池 251
6.7.7 手动内存管理的规则总结 252
6.8 自动引用计数 253
6.8.1 自动引用计数概述 253
6.8.2 @autoreleasepool块 254
6.8.3 使用弱引用解决强引用循环 255
6.9 本章小结 258
第7章 Foundation框架详解 259
7.1 字符串(NSString与
NSMutableString) 260
7.1.1 创建字符串 260
7.1.2 NSString的常用功能 261
7.1.3 可变字符串
(NSMutableString) 262
7.2 日期与时间 263
7.2.1 日期与时间(NSDate) 264
7.2.2 日期格式器
(NSDateFormatter) 265
7.2.3 日历(NSCalendar)与日期
组件(NSDateComponents) 267
7.2.4 定时器(NSTimer) 268
7.3 对象复制 270
7.3.1 copy与mutableCopy方法 270
7.3.2 NSCopying与
NSMutableCopying协议 271
7.3.3 浅复制与深复制 274
7.3.4 setter方法的复制选项 276
7.4 Objective-C集合概述 277
7.5 数组(NSArray与NSMutableArray) 278
7.5.1 NSArray的功能与用法 278
7.5.2 对集合元素整体调用方法 282
7.5.3 对NSArray进行排序 284
7.5.4 使用枚举器遍历NSArray
集合元素 285
7.5.5 快速枚举(for-in) 286
7.5.6 可变数组(NSMutableArray) 287
7.5.7 NSArray的KVC与KVO 289
7.6 集合(NSSet与NSMutableSet) 290
7.6.1 NSSet的功能与用法 290
7.6.2 NSSet判断集合元素重复的标准 293
7.6.3 NSMutableSet的功能与用法 295
7.6.4 NSCountedSet的功能与用法 297
7.7 有序集合(NSOrderedSet与
NSMutableOrderedSet) 298
7.8 字典(NSDictionary与
NSMutableDictionary) 299
7.8.1 NSDictionary的功能与用法 300
7.8.2 对NSDictionary的key排序 303
7.8.3 对NSDictionary的key进行
过滤 305
7.8.4 使用自定义类作为
NSDictionary的key 306
7.8.5 NSMutableDictionary的功能
与用法 307
7.9 谓词 308
7.9.1 定义谓词 308
7.9.2 使用谓词过滤集合 310
7.9.3 在谓词中使用占位符参数 311
7.9.4 谓词表达式语法 313
7.10 本章小结 315
第8章 文件I/O 316
8.1 使用NSData与NSMutableData 317
8.2 使用NSFileManager管理文件和目录 318
8.2.1 访问文件属性和内容 319
8.2.2 创建、删除、移动、复制 320
8.2.3 查看目录包含的内容 321
8.3 使用NSPathUtilities.h管理路径 322
8.4 使用NSProcessInfo获取进程信息 324
8.5 使用NSFileHandle处理文件IO 326
8.6 使用NSURL读取网络资源 328
8.7 使用NSBundle处理项目相关资源 329
8.8 对象归档 330
8.8.1 使用NSKeyedArchiver归档 330
8.8.2 实现NSCoding协议 332
8.8.3 使用NSData完成自定义归档 335
8.8.4 使用归档实现深复制 337
8.9 本章小结 338
第9章 iOS应用开发入门 339
9.1 从iOS项目开始 340
9.1.1 iOS项目包含的文件 340
9.1.2 Interface Builder简介 341
9.1.3 添加控件 343
9.1.4 修改控件属性 344
9.1.5 UIView支持的属性 346
9.1.6 UILabel支持的属性 348
9.2 MVC 350
9.2.1 程序入口和应用程序代理 350
9.2.2 理解iOS的MVC 354
9.2.3 掌握UIViewController控制器 355
9.3 事件机制 357
9.3.1 程序获取控件的两种方式 357
9.3.2 事件处理的三种方式 363
9.4 代码控制UI界面 370
9.4.1 不使用界面设计文件开发
UI界面 370
实例:无界面设计文件开发iOS应用 370
9.4.2 使用代码创建UI界面 373
实例:动态添加、删除标签 373
9.4.3 自定义UI控件 376
实例:跟随手指运动的小球 376
9.5 美化iOS应用 379
9.5.1 定制iOS应用图标 379
9.5.2 定制iOS应用的启动画面 380
9.6 本章小结 382
第10章 iOS界面编程之基础控件 383
10.1 UI控件概述 384
10.1.1 活动、静态和被动控件 384
10.1.2 UIControl基类介绍 384
10.2 按钮(UIButton) 385
实例:丰富多彩的按钮 388
10.3 文本框控件(UITextField) 391
实例:用户登录界面 393
10.3.1 完成输入后关闭键盘 395
10.3.2 触碰背景关闭键盘 396
10.4 多行文本控件(UITextView) 397
10.4.1 UIScrollView支持的属性 398
10.4.2 使用委托对象处理
UITextView事件 400
实例1:通过导航按钮关闭虚拟键盘 400
实例2:通过自定义键盘附件关闭虚
拟键盘 403
10.4.3 自定义选择内容后的菜单 405
10.5 开关按钮(UISwitch) 407
实例:使用开关控制“手电筒” 408
10.6 分段控件(UISegmentedControl) 409
实例:通过分段控件控制背景颜色 410
10.7 图像控件(UIImageView) 411
实例1:图片浏览器 412
实例2:“幻灯片”播放器 415
10.8 进度条 416
10.8.1 UIProgressView 416
实例:定制进度条 418
10.8.2 UIActivityIndicatorView 420
10.9 拖动条(UISlider) 422
实例:通过拖动滑块改变图片透明度 423
10.10 iOS 9的警告框
(UIAlertController) 424
10.10.1 弹出式警告框 425
10.10.2 带输入框的警告框 427
10.11 日期选择器(UIDatePicker) 429
10.12 选择器(UIPickerView) 431
10.12.1 单列选择器 432
10.12.2 多列选择器 435
10.12.3 相互依赖的多列选择器 436
10.12.4 自定义选择器视图 438
实例:“老虎机”游戏 439
10.13 iOS 8新增的UIVisualEffectView 442
10.14 微调器(UIStepper) 445
10.15 网页控件(UIWebView) 448
实例:迷你浏览器 450
10.16 工具条(UIToolBar) 453
实例:自定义工具条控件 455
10.17 本章小结 457
第11章 高级控件与特殊视图控制器 458
11.1 iOS 9新增的UIStackView 459
实例:嵌套UIStackView实现
复杂界面 464
11.2 表格(UITableView)与表格控制器
(UITableViewController) 466
11.2.1 简单表格 469
11.2.2 处理单元格的选中 473
实例:编辑选中行 473
11.2.3 定制表格行 478
实例1:继承UITableViewCell
定制表格行 478
实例2:使用动态单元格原型定
制表格行 481
11.2.4 编辑表格 483
11.2.5 多分区表格以及分区索引 488
11.2.6 直接使用
UITableViewController 490
11.2.7 静态单元格 492
11.2.8 使用UIRefreshController
刷新表格 494
11.3 搜索条(UISearchBar) 496
11.3.1 使用搜索条 498
11.3.2 使用UISearchController 500
11.4 导航条(UINavigationBar)与导航
控制器(UINavigationController) 503
11.4.1 使用导航条 503
11.4.2 使用UINavigationController 506
实例:查看、编辑图书信息 508
11.4.3 使用segue导航 513
11.5 segue详解 517
11.5.1 使用segue控制过渡 517
11.5.2 Xcode 7新增的
Storyboard Reference 521
11.6 网格(UICollectionView)与网格
控制器(UICollectionViewController) 524
11.6.1 UICollectionView的功能
与用法 526
11.6.2 使用UICollectionViewDelegate- FlowLayout定制布局 531
实例:单元格大小不同的网格 532
11.6.3 扩展UICollectionViewLayout
定制布局 534
实例:环形布局的UICollectionView 535
11.6.4 多分区网格 539
实例:带页眉、页脚的多分区网格 539
11.6.5 直接使用
UICollectionViewController 543
11.7 标签条(UITabBar)与标签页
控制器(UITabBarController) 547
11.7.1 使用UITabBar 547
11.7.2 使用UITabBarController 548
11.7.3 在Storyboard中使用UITabBarController 552
11.8 页控件(UIPageControl)与
页控制器(UIPageViewController) 553
11.8.1 UIPageControl与UIScrollView
结合使用 553
11.8.2 使用UIPageViewController 558
11.9 iPad应用开发 562
11.10 本章小结 571
第12章 管理iOS应用的运行 572
12.1 iOS设备尺寸和自动旋转机制 573
12.1.1 配置应用支持的方向 573
12.1.2 指定视图控制器支持的方向 575
12.2 旋转时重构用户界面 576
12.3 自动布局 580
12.3.1 自动布局的添加方式 580
12.3.2 使用自动布局适应不同尺寸
的屏幕 585
12.3.3 使用Size Class适应屏幕旋转 589
12.4 iOS应用的生命周期 594
12.4.1 应用程序的状态 594
12.4.2 应用程序启动过程 595
12.4.3 程序入口:main函数 596
12.4.4 响应中断 597
12.4.5 进入后台 599
12.4.6 返回前台运行 600
12.4.7 应用程序终止 601
12.4.8 Main Run Loop 601
12.5 本章小结 602
第13章 图形、图像与动画 603
13.1 使用UIImage和CGImage处理位图 604
13.1.1 显示动画 604
13.1.2 UIImage与CGImage 606
13.2 Quartz 2D绘图 606
13.2.1 Quartz 2D绘图基础:
CGContextRef 607
13.2.2 绘制几何图形 610
13.2.3 点线模式 612
13.2.4 绘制文本 616
13.2.5 设置阴影 618
13.2.6 使用路径 619
实例:绘制任意多角星 623
13.2.7 绘制曲线 624
实例:使用曲线绘制多瓣花朵 626
13.2.8 在内存中绘图 627
实例:绘图板 630
13.2.9 绘制位图 635
实例:扩展UIImage的功能 635
13.3 图形变换 640
13.3.1 使用坐标变换 640
13.3.2 坐标变换与路径结合使用 642
实例:雪花飘飘 642
13.3.3 使用矩阵变换 644
13.4 控制叠加模式 647
13.5 处理填充 652
13.5.1 渐变填充 653
13.5.2 模式填充 658
13.6 动画 665
13.6.1 Core Animation动画基础 665
13.6.2 使用CALayer 666
13.6.3 使用CATransition控制
过渡动画 669















13.6.4 使用属性动画 674
13.6.5 控制移动路径 679
实例:绕圈游动的小鱼 679
13.7 本章小结 682
第14章 疯狂连连看 683
14.1 游戏简介 684
14.2 开发游戏界面 685
14.2.1 开发界面布局 685
14.2.2 开发游戏界面控件 686
14.2.3 处理方块之间的连接线 692
14.3 游戏的状态数据模型 693
14.3.1 定义数据模型 694
14.3.2 初始化游戏状态数据 694
14.4 加载界面的图片 699
14.5 实现游戏视图控制器 701
14.6 实现游戏逻辑 703
14.6.1 GameService分析与初步实现 703
14.6.2 获取触碰点的方块 704
14.6.3 判断两个方块是否可以相连 706
14.6.4 定义获取通道的工具方法 707
14.6.5 没有转折点的横向连接 709
14.6.6 没有转折点的纵向连接 710
14.6.7 有一个转折点的连接 711
14.6.8 有两个转折点的连接 714
14.6.9 找出最短距离 723
14.7 本章小结 726

读者评论

  • 现在很多电脑都是没有光驱的,光盘怎么读?就不能提供代码下载吗?

    867551927发表于 2018/1/18 8:09:39

相关图书

谁说菜鸟不会数据分析(R语言篇)

姚新军 罗应婷 (作者)

本书从解决工作实际问题出发,提炼并总结工作中R 语言常用的数据处理、数据分析实战方法与技巧。本书力求通俗易懂地介绍相关知识,在不影响学习和理解的前提下,尽可能地...

¥69.00

跟戴铭学iOS编程:理顺核心知识点

戴铭 (作者)

本书针对 iOS 应用开发涉及的核心知识点进行详细剖析,分为 Swift、编译器、iOS 中的大前端技术三大章,从应用、进阶、未来三方面全方位剖析 iOS 开发...

¥55.30

iOS UI开发捷径——利用Interface Builder高效、优雅地开发UI

郭晓亮 (作者)

这是一本详细讲解如何使用 Interface Builder 的书籍,主要讲解如何利用 Interface Builder<br>快速、高效地开发 UI。本书从...

¥69.00

App Inventor 2 Android应用开发实务:正确学会App Inventor开发技巧的16堂课

白乃遠、曾奕霖 (作者) 白乃远 曾奕霖 (译者)

在App Inventor 2 中,只需采用简单的拖、拉、放三个基本动作,就能以拼图式的方式构建应用程序。<br>全新进化的云端编辑模式,无论身在何处,只需打开...

¥69.00

iOS动画——核心技术与案例实战

郑微 (作者)

目前,APP Store上的应用已经超过150万个,而纵观排名较为靠前的应用,无一例外都有着一个共同的特点,那就是良好的用户体验。动画作为用户体验中最复杂、最绚...

¥69.00

iOS 应用安全权威指南

David Thiel (作者) 程伟 (译者)

对于所有希望保护用户免受恶意攻击的开发者来说,消除iOS 应用当中的安全漏洞至关重要。在本书中,移动端安全专家David Thiel 向你揭示了那些会导致严重安...

¥69.00