event delivly 事件分发, 响应链

本文详细解析了iOS中用户触发屏幕点击动作后的事件分发流程,包括从UIEvent的生成到传递给应用的过程,以及hit-testing如何确定点击视图并进行事件处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

官方文档: 事件分发


当用户触发一个点击屏幕的动作时, system 封装这个动作,为 UIEvent,然后传递給 正在使用的 app, 它传递給 window -》 寻找被点击到的view;

流程就是 UIapplication - UIWindow - UIView (hit-test view) 也就是用户点击的view。


hit-testing 也就是寻找点击view 的过程。

系统会寻找,点击是,屏幕上的view ,同时把 view 便利,来着 是不是 pointInsideView 来 判断是非是 hit-test view ,如果是,就会返回这个 view ,让它来处理 event。

处理 event 的过程,则是相反的一个过程,

hit-test view  - 》 superview - 》 topmost View - 》 UIViewController - 》 Window -》 UIApplication。

以上就是  事件分发的过程。 欢迎补充,拍砖


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值