“网络开发视频大讲堂”丛书系清华社“视频大讲堂”重点大系之一。该大系包括多个子系列,每个子系列的图书在其同品种的图书中销售名列前茅,其中:
4个品种荣获“全行业畅销品种”
1个品种荣获2012年清华大学出版社“专业热销书”一等奖
绝大多数品种在“计算机零售图书排行榜”同品种排行中名列前茅
截至目前该大系累计销售超过55万册
该大系已成为近年来清华社计算机专业基础类零售图书热销的品牌之一
“网络开发视频大讲堂”系列作为清华社“视频大讲堂”大系的子系列之一,继承和创新了清华社“视频大讲堂”大系的编写模式、写作风格和优良品质。本书突出了以下内容:
200节大型高清同步视频演示讲解,可反复观摩,让学习更为快捷、高效
102个典型中小实例,通过实例学习更深入,更有趣,更有动力
4个综合实战案例,展现工作过程,积累工作经验
?iOS软件代码规范1部,Objective-C编码规范1部,iOS参考资料5类,iOS功能代码参考16类,iOS面试题5部分,iOS开发工具集合网页文档1部,iOS开发类库网页文档1部,iOS资源网页文档1部
?实用网页模板380套,网页配色辞典1部,协调色配色参考7套,网页色彩搭配图43张,不同色系实物配色卡540张,实用配色参考18部,网页设计素材13类
?HTML工具集6部,CSS工具集8部,JavaScript工具集16部,PS帮助手册1部
?HTML应用案例360个,CSS3应用案例510个,JavaScript+jQuery应用案例900个,网页交互设计案例1000个
?Web前端开发规范手册1部,JavaScript知识点思维导图10张,HTML+CSS面试题351道,JavaScript面试题685道,网页欣赏
《iOS开发从入门到精通》一书以iOS 9.0、Xcode 6.4为平台,全面介绍了iOS应用开发的基础知识。掌握Objective-C语言是iOS应用开发的基础,全书从Objective-C基本语法开始,详细讲解了Objective-C语法结构、Objective-C面向对象特征、Foundation核心类库用法,iOS应用开发的基本理论,以及iOS应用和编程技巧,主要包括iOS应用核心、窗口和视图、事件处理、视图控制器绘图、文件、SQLite、数据处理、网络、多媒体、设备支持、游戏开发等内容。本书还提供了很多开发应用案例,模仿练习这些案例,能够帮助用户快速地找到实战的感觉。
《iOS开发从入门到精通》内容翔实、结构清晰、循序渐进,基础知识与案例实战紧密结合,既可作为iOS初学者的入门教材,也适合中高级用户对新技术做进一步的学习和参考。
触摸信息有时间和空间两个方面,时间方面的信息称为阶段(phrase),表示触摸是否刚刚开始、是否正在移动或处于静止状态,以及何时结束,也就是手指何时从屏幕抬起,如图13.1所示。
图13.1多点触摸序列和触摸阶段
触摸信息还包括当前在视图或窗口中的位置信息以及之前的位置信息(如果存在)。当一个手指接触屏幕时,触摸就和某个窗口或视图关联在一起,这个关联在事件的整个生命周期都会得到维护。如果有多个触摸同时发生,则只有和同一个视图相关联的触摸会被一起处理。类似地,如果两个触摸事件发生的间隔时间很短,也只有当它们和同一个视图相关联时,才会被处理为多触击事件。
在iOS中,一个UITouch对象表示一个触摸,一个UIEvent对象表示一个事件。事件对象中包含与当前多点触摸序列相对应的所有触摸对象,还可以提供与特定视图或窗口相关联的触摸对象,如图13.2所示。
图13.2UIEvent对象及其UITouch对象间的关系
在一个触摸序列发生的过程中,对应于特定手指的触摸对象是持久的,在跟踪手指运动的过程中,UIKit会对其进行修改。发生改变的触摸属性变量有触摸阶段、触摸在视图中的位置、发生变化之前的位置以及时间戳。事件处理代码通过检查这些属性的值来确定如何响应事件。
系统可能随时取消多点触摸序列,进行事件处理的应用程序必须做好正确响应的准备。事件的取消可能是由于重载系统事件引起的,如电话呼入。
13.1.3事件传递
系统将事件按照特定的路径传递给可以对其进行处理的对象。例如,当用户触摸设备屏幕时,iOS会将其识别为一组触摸对象,并将它们封装在一个UIEvent对象中,放入当前应用程序的事件队列。
事件对象将特定时刻的多点触摸序列封装为一些触摸对象。负责管理应用程序的UIApplication应用对象将事件从队列的顶部取出,然后派发给其他对象进行处理。典型情况下,它会将事件发送给应用程序的焦点窗口,然后代表该窗口的UIWindow对象再将其发送给第一响应者进行处理。
应用程序通过触碰测试(hit-testing)寻找事件的第一响应者,即通过递归调用视图层次中视图对象的hitTest:withEvent:方法确认发生触摸的子视图。触摸对象的整个生命周期都和该视图互相关联,即使触摸动作最终移动到该视图区域之外也是如此。
UIApplication对象和每个UIWindow对象都在sendEvent:方法中派发事件。由于这些方法是事件进入应用程序的通道,所以可以从UIApplication或UIWindow派生出子类,重载其sendEvent:方法,实现对事件的监控或执行特殊的事件处理,但大多数应用程序都不需要这样做。