事件传递

传递过程 -> hitTest 调用顺序
每当手指接触屏幕,操作系统和会把事件传递给当前的 APP,在 UIApplication 接收到手指的事件之后,就会去调用 UIWindow 的hitTest:withEvent:,看看当前点击的点是不是在 window 内,如果是则继续依次调用其 subview 的hitTest:withEvent:方法,直到找到最后需要的 view,调用结束并且 hitTest view 确定之后,便可以确定最合适的 view 。
touch -> UIApplication -> UIWindow -> UIViewController.view -> subviews -> ... -> 合适的view

事件的传递顺序 与 hitTest 的调用顺序相反
view -> superview -> ... -> UIViewController.view -> UIViewController -> UIWindow -> UIApplication

hitTest 应用场景:

  1. 事件穿透
  2. 子视图超出父视图范围
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容