一、事件
分三类:触摸事件,晃动事件,远程控制事件
二、触摸事件
触摸对应的UI类是UITouc
1,UIView (继承自UIResponder)支持触摸事件。
2,我们往往要定义UIView的子类来实现触摸的相关方法。
原因是对UIView只能看到其.h文件,看不到.m文件,要实现触摸事件,必须要重写其四个方法: touches..began、touches..moved、touches...ended、 touches..canceled来实现我们自己想要的反应行为。
三、响应者链
1,检测顺序:UIApplication -> window -> viewController -> view -> 检测所有⼦视图。
2,处理事件的顺序:触摸的⼦视图 -> view -> viewController -> window -> UIApplication。
四、具体的一些常用API
UITouch *touch=[touches anyObject];
//取得当前位置
1, CGPoint current=[touch locationInView:self.superview];
//取得前一个位置
2, CGPoint previous=[touch previousLocationInView:self.superview];
五、注意事项
响应者链可以被打断,使其⽆法完成检测查询过程。 视图类的属性 userInteractionEnabled 关闭后能阻断查询过程。
1, 在UI中,基本上所有的控件的用户交互都是打开的,但是也有一些特例:如lable,imageView
2, userInteractionEmabled 这个属性是影响响应者连的检测过程。如果一个lable或imageView的此属性没有设置为YES的话,其子控件就不会监测此过程。