触摸事件 & UIResponder

UIResponder

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;

当应用发生摸个触摸事件后(例如触摸开始、手指移动、触摸结束),系统都会将该事件添加至一个有UIApplication单例管理的事件队列。

UIGestureRecognizer

UIGestureRecognizer对象在识别手势时,会截取本应由其附着的视图自行处理的触摸事件。因此,附着了UIGestureRecognizer对象的视图可能不会收到常规的UIResponder消息,例如touchBegan:withEvent:

Paste_Image.png
Paste_Image.png

UIMenuController

每个应用只有一个UIMenuController,使用此controller必须使相应的对象为第一响应者(becomeFirstResponder)。
如果实现某个UIResponderStandarEditActions协议方法,又不希望在UIMenuController对象显示相应的菜单项,可以覆盖**
canPerformAction: withSender:**然后针对相应的方法返回NO即可。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容