关于iOS事件
用户操作iOS设备有多种方法,像触摸屏幕和摇晃设备。iOS系统翻译用户何时和怎样操作硬件,并把操作信息传递给你的应用。你的应用越是通过自然和直觉的方式响应动作,越是能激发用户的使用体验。
概述
事件是对象发送到一个应用程序通知用户操作。在iOS中,事件可以采用许多形式:多点触摸事件、移动事件和控制多媒体事件。最后的事件类型就是我们熟知的通过外部附件远程控制事件。
UIKit使你的应用发现手势变的容易
iOS应用识别触摸的组合并且通过直觉的方式响应给用户,例如在内容上缩放以响应捏合手势和滚动以响应轻拂事件。事实上,一些手势非常普遍,它们都是建立在UIKit上。例如,UIControl的子类,像UIButton和UISlider,分别响应特定的事件----在按钮上的轻敲、在滑块儿上的拖拽。当你设置这些控制单元,当特定的触摸发生时,这些控制单元会发送动作消息到目标对象。通过使用手势识别器你可以在视图上使用target-action机制。当你附加一个手势识别器到一个视图,视图就相当于一个控制单元来响应你所指定的任何手势。手势识别器为复杂的事件处理逻辑提供更高级别的抽象。因为手势识别器是强大的、可复用的和能适应的,所以在你的应用中实现触摸事件的处理使用手势识别器是你的首选。你可以使用内置的手势识别器并且定制它的行为,或者你创建你自己的手势识别器来识别新的手势。
相关章节:
一个事件沿着特殊的路径旅行来查找处理它的对象
当iOS识别一个事件,它把事件传递到跟处理该事件似乎是最相关的初始对象,例如一个触摸事件所发生的视图。如果初始对象不能处理该事件,iOS继续讲事件传递到更大范围的对象,直到找到一个对象有足够的上下文来处理事件。这条对象的序列就是响应链(responder chain),iOS传递事件验证这条链,它也转移响应事件的责任。这个设计模式使事件处理合作的和动态的。
相关章节。
一个UIKit封装一个触摸、摇动或远程控制事件
许多事件是UIKit中UIEvent类的实例。一个UIEvent包含事件的信息,你可以根据UIEvent决定如何响应事件。当用户一个动作产生,像手指触摸屏幕并沿着屏幕移动,iOS持续发送事件对象到一个应用上处理。每个事件都有一个类型:触摸、摇晃移动、或远程控制和子类型。
一个应用在用户触摸它的视图时接收多点触摸事件
取决于你的应用,UIKit控制单元和手势识别器可以充分处理你的应用所有的触摸事件。即使你的应用有自定义的视图,你也可以使用手势识别器。一般说来,当你的应用响应一个跟视图自身紧紧耦合的触摸时,你写你自己的触摸事件处理,例如触摸下的绘画。在这些情况下,由你负责低级别的事件处理。你实现那些触摸方法,在这些方法中,你分析原始的触摸事件并适当地响应。
应用在用户操作多媒体控制单元时接收远程控制事件
iOS控制装置和外部附件发送远程控制事件到一个应用上。这些事件允许用户控制音频和视频。