事件的产生与传递

事件是怎么样产生与传递的?

当发生一个触摸事件后,系统会将该事件加入到一个由UIApplication管理的事件队列中.
UIApplication会从事件队列中取出最前面的事件,交给主窗口.
主窗口会在视图层次结构中找到一个最合适的视图来处理触摸事件
触摸事件的传递是从父控件传递到子控件的.
如果一个父控件不能接收事件,那么它里面的了子控件也不能够接收事件.

一个控件什么情况下不能够接收事件?

  • 1.不接收用户交互时不能够处理事件 userInteractionEnabled = NO

  • 2.当一个控件隐藏的时候不能够接收事件Hidden = YES的时候

  • 3.当一个控件为透明白时候也不能够接收事件

注意:UIImageView的userInteractionEnabled默认就是NO,因此UIImageView以及它的子控件默认是不能接收触摸事件的

你可能感兴趣的:(事件的产生与传递)