iOS面试复习-事件的产生和传递

事件的产生和传递

1.发生触摸事件后,runloop中触发source1事件 生成一个UIEvent 事件 系统会将该事件加入一个由UIApplication管理的事件队列中(先进先出)

2.UIApplication 会从事件队列中取出最前面的事件,并将事件分发下去以便处理,通常事件先发送给keywindow 

3.keywindow 会在视图层次结构中,找到一个最合适的视图来处理触摸事件,这也是整个事件处理过程的第一步

事件传递示例

UIView不接收触摸事件的三种情况

UIView不接收触摸事件的三种状况

如何找到最合适的view响应事件

1.hitTest 2.pointInside 系统主要依赖这两个方法

1.判断是否接收触摸事件

2.判断点是否在当前控件 调用pointInside 方法

3. 从后往前 遍历自己的自控件

你可能感兴趣的:(iOS面试复习-事件的产生和传递)