iOS事件响应链

一句话解释,把view层级关系看成是树的话,那么树中的叶节点比父节点永远更优先被分发事件。

对于触摸事件,window对象会尝试着首先将事件传递给触摸事件发生点得View。这个View被视为
“命中测试view” (hit-test view)。

这里写图片描述

如上图,你如果点击cView,iOS会通过检测所有的子视图,去寻找命中测试view:

1、触摸点是否在aView边界内,如果是,则检查bView和dView;

2、触摸点不在dView的边界内,而在bView的边界内,接着会检查cVeiw,而cView是整个包含触摸事件的view层级中最底端的view,所以cView就是命中测试view。

打印出来cView的所有的nextResponder可以得到响应链顺序:
cView->bView->aView->UIView->viewController->UIWindow->UIApplication->AppDelegate。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值