事件传递和响应者链条

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

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

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

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

响应者链条的系统做法:

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

Snip20150711_2.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容