美文网首页
iOS事件传递和事件响应

iOS事件传递和事件响应

作者: 代码之路 | 来源:发表于2019-12-28 20:54 被阅读0次

    UIApplication运行着一个runloop在接受触摸事件,当接收到触摸后将事件交给keywindow去处理,然后通过一系列的事件传递找到合适的view。
    hitTest方法的内部流程
    1,判断自己能否接收事件。
    2,判断下点在不在当前视图 pointInside: withEvent: ,如果在,继续下一步。
    3,从后往前遍历自己的子控件。
    4,如果没有比自己合适的子控件,那么这个最合适的View就是自己返回self。

    然后会调用touchesBegan方法,向上传递给 响应者,这就是响应者链条

    响应者链条

    响应者链条:由多个响应者一起形成的链条
    作用:能清楚的看到每个响应者的联系,同时可以让一个事件多个对象处理。
    响应者对象:能处理事件的对象。

    如何判断上一个响应者:
    如果view是控制器view,那么控制器就是上一个响应者,否则父控件就是上一个响应者,如果一直找不到响应者会最终会到AppDelegate,如果AppDelegate内没有实现该事件方法,将会崩溃。

    相关文章

      网友评论

          本文标题:iOS事件传递和事件响应

          本文链接:https://www.haomeiwen.com/subject/rpqeoctx.html