事件传递和响应者链条

用户一旦触摸屏幕, 会产生一个UITouch 对象,会交给UIApplication对象去处理这个对象,并开始寻找最适合的view。通过一个递归方法:

  • 1> 判断自己能不能接收事件
  • 2> 点在不在窗口上
  • 3> 去找比自己更合适的view,从后往前遍历子控件,拿到子控件后,把事件传递给这个子控件
  • 4> 子控件拿到事件之后,又会做同样的判断,一直递归去找,直到找到最合适的view.

由于主窗口也是一个UIView,因此首先会去找主窗口,查看主窗口能否产生交互(hidden == NO && alpha > 0.01 && userInteractionEnabled == YES)

找到最合适的view,把事件交给他,这就是事件传递的过程。

响应者链条的系统做法:

touch方法的默认做法:自己不处理,交给上一个响应者。

事件传递和响应者链条_第1张图片
Snip20150711_2.png

你可能感兴趣的:(事件传递和响应者链条)