iOS 事件响应机制

最近看了一篇iOS的响应链的文章,颇觉受益。分享刚到朋友圈给同事看过之后,同事问了我几个问题。我就发现,我每次看别人的帖子,觉得好像理解了。你要是再仔细问我,我也说不出所以然来。先整理一点东西吧,方便自己理解和以后查找 Responder Chain(ios事件传递)

我先把问题贴出来:

1、为什么触摸事件是由Application产生,然后分发,而不是直接触摸谁,谁响应?

2、事件冲突是怎么产生的,能否复现?

3、通过Application的层级可以找到当前在终端显示的view,那么自己可否也通过代码实现?


关于问题1,

UIResponder中的默认实现是什么都不做,但UIKit中UIResponder的直接子类(UIView,UIViewController…)的默认实现是将事件沿着responder chain继续向上传递到下一个responder,即nextResponder。? 因为UIApplication 是当前app的最底层,默认的第一响应者, 所以由UIApplication进行事件分发。

关于问题2,

冲突 产生的原因在于? 同一种手势 在父类 和子类都存在 那么响应的时候 就会出现冲突? 是可以复现的

关于问题3,


推荐阅读更多精彩内容