美文网首页程序员
处理多层级事件传递(UIResponder拓展)

处理多层级事件传递(UIResponder拓展)

作者: 凤鸣a | 来源:发表于2016-07-15 14:23 被阅读132次

1、使用场景

多层级的事件传递与响应

编辑

2、参数说明

eventName:通过这个key对事件进行识别;

userInfo:响应事件需要的数据,类型可根据需要来写(model或NSDictionary等等)

编辑

3、使用方法

给UIResponder添加一个自定义事件

当事件发生,沿响应者链,找到当前view的nextResponder(即:superView)对应的view(或viewController),找到这个view后先判断能不能响应这个事件,如果不能那就继续找nextResponder,直到viewController接收该事件。

在当前view响应点击事件的方法中,将事件传递出去

例:

注:每一个key(即:eventName),可定义在当前view中,以便接收事件的superView使用

在对应controller中统一接收事件

例:

在对应control中实现具体事件

例:

4、优缺点

优点:统一处理多层级事件的传递与相应,避免了逻辑混乱的多层代理,代码简洁,结构简单;

缺点:对于层级结构简单的情况,相比抛出代理而言,逻辑清晰度稍差。

相关文章

  • 处理多层级事件传递(UIResponder拓展)

    1、使用场景 多层级的事件传递与响应 编辑 2、参数说明 eventName:通过这个key对事件进行识别; us...

  • iOS响应链和手势总结

    继承关系 UIResponder 继承关系图只有继承了UIResponder的对象才能接受并处理事件 事件传递 U...

  • 响应者链和传递链

    参考资料: 事件传递以及响应者链条 UIResponder的对象都能够接收并处理事件。 UIResponder的三...

  • 2019-12-09知识点总结

    1. 事件传递与响应者链? 首先只有继承了UIResponder的对象才能接收并处理事件,事件的传递是从上到下(父...

  • iOS离屏渲染

    界面渲染 UIView继承自UIResponder,可以处理系统传递过来的事件,如:UIApplication、U...

  • 详解UIView和CALayer

    1、UIView和CALayer的关系 UIView继承自UIResponder,可以处理系统传递过来的事件,如:...

  • iOS事件传递以及响应综合分析

    响应者对象UIResponder 事件传递事件传递过程关于hitTest:withEvent:方法解析 事件响应者...

  • 关于iOS的离屏渲染

    首先谈谈UIView和CALayer关系UIView继承自UIResponder,可以处理系统传递过来的事件,如:...

  • iOS事件传递和响应链

    一、事件传递机制 在iOS中,只有继承于UIResponder的子类,才可以处理事件。 1.当iOS程序中发生触摸...

  • iOS基础知识整理之事件传递响应链

    事件传递响应链 UIResponder 在iOS中,能够响应事件的对象都是UIResponder的子类对象。UIR...

网友评论

    本文标题:处理多层级事件传递(UIResponder拓展)

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