事件传递

传递过程 -> 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. 子视图超出父视图范围

你可能感兴趣的:(事件传递)