• iOS


    事件处理的完整过程

    • 1> 先将事件对象由上往下传递(由父控件传递给子控件),找到最合适的控件来处理这个事件。

    • 2> 调用最合适控件的touches….方法

    • 3> 如果调用了[super touches….];就会将事件顺着响应者链条往上传递,传递给上一个响应者

    • 4> 接着就会调用上一个响应者的touches….方法

    如何判断上一个响应者

    • 1> 如果当前这个view是控制器的view,那么控制器就是上一个响应者

    • 2> 如果当前这个view不是控制器的view,那么父控件就是上一个响应者

    响应者链的事件传递过程

    • 如果view的控制器存在,就传递给控制器;如果控制器不存在,则将其传递给它的父视图
    • 在视图层次结构的最顶级视图,如果也不能处理收到的事件或消息,则其将事件或消息传递给window对象进行处理
    • 如果window对象也不处理,则其将事件或消息传递给UIApplication对象
    • 如果UIApplication也不能处理该事件或消息,则将其丢弃

    响应者

    1. touches方法做法是将事件顺着响应着链条向上传递,交给上一响应者进行处理。
    2. 默认方法中[super touches... withEvent..];
    3. 控件能响应事件则必须实现重写touches方法,在其方法中处理事件,实现响应。
    4. 多控件处理的原则是1在响应者链条上,且是其控件的父控件2且实现touches方法。
  • 相关阅读:
    【Splay树】
    毕业设计每日总结2020/2/8
    毕业设计每日总结2020/2/7
    毕业设计每日总结2020/2/6
    毕业设计每日总结2020/2/5
    毕业设计每日总结2020/2/4
    毕业设计每日总结2020/2/3
    毕业设计每日总结2020/2/2
    毕业设计每日总结2020/2/1
    毕业设计第一周计划
  • 原文地址:https://www.cnblogs.com/ShaoYinling/p/4649881.html
Copyright © 2020-2023  润新知