在iOS中,事件可以划分为以下几类:
1.触摸事件:通过触摸,手势进行触发(手指点击、缩放等)
2.运动事件:通过加速器触发(例如手机晃动)
3.远程控制事件:通过其他远程设备触发(例如耳机控制按钮)
在iOS中并不是所有的类都能处理接收并事件,只有继承自UIResponder类的对象才能处理事件(如我们常用的UIView、 UIViewController、UIApplication都继承自UIResponder,它们都能接收并处理事件)。在UIResponder中 定义了上面三类事件相关的处理方法:
触摸事件:
//一根或多根手指开始触摸屏幕时执行;
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
//一根或多根手指在屏幕上移动时执行,注意此方法在移动过程中会重复调用;
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;
//一根或多根手指触摸结束离开屏幕时执行;
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
//触摸意外取消时执行(例如正在触摸时打入电话);
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event;
运动事件:
//运动开始时执行;
- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event NS_AVAILABLE_IOS(3_0);
//运动结束后执行;
- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event NS_AVAILABLE_IOS(3_0);
//运动被意外取消时执行
- (void)motionCancelled:(UIEventSubtype)motion withEvent:(UIEvent *)event NS_AVAILABLE_IOS(3_0);