您的位置:首页 > 移动开发 > IOS开发

iOS - 事件处理全过程(补充)

2015-07-16 00:00 267 查看

事件处理的完整过程

1> 先将事件对象由上往下传递(由父控件传递给子控件),找到最合适的控件来处理这个事件。

2> 调用最合适控件的touches….方法

3> 如果调用了[super touches….];就会将事件顺着响应者链条往上传递,传递给上一个响应者

4> 接着就会调用上一个响应者的touches….方法

如何判断上一个响应者

1> 如果当前这个view是控制器的view,那么控制器就是上一个响应者

2> 如果当前这个view不是控制器的view,那么父控件就是上一个响应者

响应者链的事件传递过程

如果view的控制器存在,就传递给控制器;如果控制器不存在,则将其传递给它的父视图

在视图层次结构的最顶级视图,如果也不能处理收到的事件或消息,则其将事件或消息传递给window对象进行处理

如果window对象也不处理,则其将事件或消息传递给UIApplication对象

如果UIApplication也不能处理该事件或消息,则将其丢弃

[b]响应者[/b]

touches方法做法是将事件顺着响应着链条向上传递,交给上一响应者进行处理。

默认方法中[super touches... withEvent..];

控件能响应事件则必须实现重写touches方法,在其方法中处理事件,实现响应。

多控件处理的原则是1在响应者链条上,且是其控件的父控件2且实现touches方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: