响应者链条

来源:互联网 发布:阕和阙的区别知乎 编辑:程序博客网 时间:2024/04/28 11:46

1.概念

UIResponder类,是UIKIT中一个用于处理时间响应的基类.窗口上的所有事件触发,都由该类响应.所以,窗口上的view及控制器都是派生于该类的,列入UIView,UIViewController等.调用UIResponder类提供的方法或属性,我们就可以捕捉到窗口上的所有响应事件,并进行处理

响应者链条是由多个响应者对象连接起来的链条,其中响应者对象是能处理事件的对象,所有的view和viewController都是响应者对象,利用响应者链条能让多个控件处理同一个触摸事件

2.事件传递机制

如果当前view不能处理当前事件,那么事件会沿着响应者链(Responder Chain)进行传递,直到遇到能处理该事件的响应者(Responsder Object)



1)接收事件的initial view如果不能处理该事件并且它不是顶层的view,则事件会传递给它的父view

2)initial view的父view获取事件后如果仍不能处理,则继续往上传递,循环这个过程.如果顶层的view还不能处理这个事件的话,则会将事件传递给它们的viewController

3)如果viewController也不能处理,则传递给window,如果window还是不能处理的话就讲事件传递给UIApplication,最后如果连Application也不能处理的话,就废弃该事件



0 0
原创粉丝点击