美文网首页
事件响应和手势识别

事件响应和手势识别

作者: 摸鱼侠睡不饱 | 来源:发表于2019-08-21 16:40 被阅读0次
事件响应

当一个硬件事件发生后
首先有 IOKit.framework 生成一个 IOHIDEvent 事件
并由SpringBoard接收
然后通过 mach port 转发给需要的app进程
随后苹果注册的 Source1 会触发回调
并调用_UIApplicationHandleEventQueue()进行内部的分发
_UIApplicationHandleEventQueue() 会把 IOHIDEvent 处理 并包装成 UIEvent ,其中包括旋转,触摸等发送给window

手势识别

_UIApplicationHandleEventQueue() 识别了一个手势时
会首先调用 cancel 当前的 touchesBegin/Move/End 系列回调给打断
随后系统将对应的 UIGestureRecognizer 标记为待处理
苹果注册了一个 Observer 监测 BeforeWaiting(Loop即将进入休眠)事件
这个observer的回调函数为:_UIGestureRecognizerUpdateObserver()
其内部会获取所有刚被标记为待处理的 GestureRecognizer
并执行 GestureRecognizer 的回调

当有 UIGestureRecognizer 的变化(创建/销毁/状态改变)时,这个回调都会进行相应处理。

相关文章

网友评论

      本文标题:事件响应和手势识别

      本文链接:https://www.haomeiwen.com/subject/rqdisctx.html