本文系转载,原文地址为iOS触摸事件全家桶
总结
- 触摸发生时,系统内核生成触摸事件,先由IOKit处理封装成IOHIDEvent对象,通过IPC传递给系统进程SpringBoard,而后再传递给前台APP处理。
- 事件传递到APP内部时被封装成开发者可见的UIEvent对象,先经过hit-testing寻找第一响应者,而后由Window对象将事件传递给hit-tested view,并开始在响应链上的传递。
- UIRespnder、UIGestureRecognizer、UIControl,笼统地讲,事件响应优先级依次递增。
参考资料
- 史上最详细的iOS之事件的传递和响应机制-原理篇
- Understanding Event Handling, Responders, and the Responder Chain
- iOS触摸事件的流动
- UIKit: UIControl
demo地址:TouchEventLib (仅供参考)
网友评论