事件的产生和传递

Posted Juilliardmit

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了事件的产生和传递相关的知识,希望对你有一定的参考价值。

•发生触摸事件后,系统会将该事件加入到一个由UIApplication管理的事件队列中
 
•UIApplication会从事件队列中取出最前面的事件,并将事件分发下去以便处理,通常,先发送事件给应用程序的主窗口(keyWindow)
 
•主窗口会在视图层次结构中找到一个最合适的视图来处理触摸事件,这也是整个事件处理过程的第一步
 
•主窗口会调用hitTest:withEvent:方法在视图继承树中找到一个最合适的子视图来处理触摸事件,该子视图即为hit-test视图
•找到合适的视图控件后,就会调用视图控件的touches方法来作具体的事件处理
touchesBegan…
touchesMoved…
touchedEnded…
 
 
 
•如果父控件不能接收触摸事件,那么子控件就不可能接收到触摸事件(掌握)
 
•如何找到最合适的控件来处理事件?
Ø自己是否能接收触摸事件?userInteractionEnabled 等等
Ø触摸点是否在自己身上?
Ø从后往前遍历子控件,重复前面的两个步骤
Ø如果没有符合条件的子控件,那么就自己最适合处理

以上是关于事件的产生和传递的主要内容,如果未能解决你的问题,请参考以下文章

事件的产生和传递

事件的产生和传递

UIView和CALayer的关系及 iOS中的事件的产生和传递

事件的产生,传递以及响应链

事件的产生,传递以及响应链

ios开发事件处理之 :二:事件的产生与传递