您的位置:首页 > 其它

响应者链

2015-11-23 18:07 232 查看
我们有没有想过屏幕是如何响应我们的触摸事件的?

我们假设点击了屏幕上的一个label

app是如何确定你点的是哪个view的哪?那么应该由谁来响应你的点击哪?

这就联系到了响应者链

响应者链解决了两个问题:

1 确定是哪个view -- 传递链(递归查找)

2 这个点击事件由谁来做?--响应链

iOS使用hit-Testing通过检查触摸点是否在关联的view边界内,如果在则递归地检查该view的所有子view

传递链:由系统向离用户最近的view传递。UIKit - window - 》root view -> lowest view

响应链:由离用户最近的view向系统传递。initial view - >super view ->...->view controller ->window ->Application

按照正常情况下,子类接收点击事件以后,事件不会主动传递到下一个响应者,因此父类便不会再接收点击事件。如果子类不处理点击事件,则事件会一直传递下去,知道UIApplication
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: