--------触摸事件与手势
1.触摸事件的处理方式
iOS上,事件的形式:触摸事件(Multitouch events)
事件处理的方法:
//触摸开始(当一个或多个手指触碰屏幕时)
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent
//触摸移动(当一个或多个手指在屏幕上移动时)
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent
//触摸结束(当一个或多个手指离开屏幕时)
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent
//触摸取消(当触摸事件被例如电话呼入这样的系统事件所取消时)
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent
2.事件传递的过程
事件的传递:从事件发生到其处理的对象,传递要经过特殊的一段过程。当用户点击设备屏幕时,iOS(系统)捕捉到一系列的触摸,将其打包到UIEvent对象中并放置到应用程序的活动时间队中。(发生触摸事件后,系统会将改时间加入到一个由UIApplication管理的事件队列中。)UIApplication对象从事件队列中取出最前面的事件将其分发,通常,其发送事件给应用程序的主窗口——UIWindow,再由窗口对象发送事件给”第一响应者(触摸的视图)”处理。
3.响应者链的基本概念
响应者对象是一个能接受并且处理事件的对象。UIResponser是所有响应者对象的基类。该基类定义了一系列编程接口,不但为事件处理进行服务而且还提供了通用的响应行为处理。UIApplication,UIView(包括UIWindow),UIViewController,AppDelegate都直接或间接的继承自UIResponser,所有的这些类的实例都是响应者对象。
响应者链:表示一系列的响应者对象。事件被交由第一响应者对象处理,如果第一响应者不处理,事件被沿着响应者链向上传递,交由下一响应者(next responder),如果响应事件,事件就被截取处理;如果一直没有处理,事件就被丢弃。
4.手势识别器
UIGestureRecognizer类,用于检测、识别用户使用设备时所用的手势。他是一个抽象类,定义了所有手势的基本行为。
UIGestureRecognizer子类,用于处理具体的用户手势行为
(轻击)
(捏合)
(平移)
(轻扫)
(旋转)
(长按)