ios-事件浅析

来源:互联网 发布:网络教育统考 编辑:程序博客网 时间:2024/06/07 17:25

ios中的事件大致分为三大类,一个是触摸事件,一个是加速计事件比如说微信里面的摇一摇,还有一个是远程控制事件比如说你手机连上了耳机,耳机上可以调整音量。

ios中的响应者对象:在ios中不是任何的对象都可以处理事件,只有继承了UIResponder的对象才能接受并且处理事件,我们称之为"响应者对象"。

UIApplication、UIViewController、UIView都继承自UIResponder,所以它们都是响应者对象,都能够接受并且处理事件。其实比如说UITextField就是继承自UIControl,然后UIControl又继承UIView,UIView又继承UIResponder所以就可以接受和处理事件。也就是说只要继承了UIResponder的对象都是响应者对象。

触摸事件分为下面四个方法

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event//手指接触到的时候调用-(void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event//手指移动的时候调用-(void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event//手指离开的时候调用-(void)touchesCancelled:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event//意外的中断了,比如说来电话了
UITouch中的一些属性

timetamp指的是你点击屏幕所需的时间

phase是阶段,比如说你是在begin,还是move等等阶段

tapCount是快速点击的次数

window就是你触摸事件的响应者对象所在的window

view就是你触摸的那个view

还有两个方法

- (CGPoint)locationInView:(nullable UIView *)view;这个方法就是你基于某个坐标系的位置是多少,view就是你要参考的坐标系

- (CGPoint)previousLocationInView:(nullable UIView *)view;这个就是上一个点所在的位置,其实就是当前触摸的上一个点就等于你上一次触摸的当前点