iOS 事件传递&响应者链
2019-03-31 本文已影响0人
iOS_July
iOS中的响应者链(Responder Chain)是用于确定响应者的一种机制。
其中的事件主要指触摸事件(Touch Event),该机制和UIKit中的UIResponder类紧密相关。
响应触摸事件的都是屏幕上的界面元素,而且必须是继承自UIResponder类的界面类(包括各种常见的视图类及其视图控制器类,如UIView和UIViewController)才可以响应触摸事件。
一个事件响应者的完成主要经过两个过程:
hitTest方法命中视图和响应者链确定响应者。
hitTest方法首先从顶部UIApplication往下调用(从父类到子类),直到找到命中者,然后从命中者视图沿着响应者链往上传递寻找真正的响应者。
-
一个button的点击事件,到底发生了什么:
图一 -
由上图分析可得:点击这个点击事件触发的时候,会被加入到运行循环里,然后从
UIApplication
开始,一级一级
的往下找,最终确认是 什么东西 触发的,这是事件的传递
,响应者链
则是逆着这个顺序走。 -
这里的响应者链 ----- button-->view。
-
button就是第一响应者。