事件的产生和传递
1.发生触摸事件后,runloop中触发source1事件 生成一个UIEvent 事件 系统会将该事件加入一个由UIApplication管理的事件队列中(先进先出)
2.UIApplication 会从事件队列中取出最前面的事件,并将事件分发下去以便处理,通常事件先发送给keywindow
3.keywindow 会在视图层次结构中,找到一个最合适的视图来处理触摸事件,这也是整个事件处理过程的第一步
事件传递示例
UIView不接收触摸事件的三种情况
UIView不接收触摸事件的三种状况如何找到最合适的view响应事件
1.hitTest 2.pointInside 系统主要依赖这两个方法
1.判断是否接收触摸事件
2.判断点是否在当前控件 调用pointInside 方法
3. 从后往前 遍历自己的自控件
网友评论