美文网首页
ios的事件处理 一 基本概念

ios的事件处理 一 基本概念

作者: Oliver_Dev | 来源:发表于2018-07-13 02:07 被阅读0次

Key word

  • Event Handling
  • Responder
  • the Responder Chain

Responder

1.一个Responder是UIResponder Class的实例化
2.常见的UIResponder子类有UIView,UIViewController, UIApplication
3.中文解释: 响应者

简述

  • 场景1: 在屏幕上点击按钮
    App会接收到一个Event, 并自动将该Event会分配给最合适的响应者 (第一响应者 First Reponder),此时是UIButton,UIButton对该事件进行处理。
  • 场景2:在屏幕上点击文本
    App会接收到一个Event,首先会把这个Event分配给UILabel,但是UILabel并不处理Event事件,所以UILabel会将该Event分配给它的superView.以此延续,最终结果有两种
    1.找到能处理该事件的对象,just do something
    2.没有找到,该点击没有引起任何的效果
    可以看到,在场景2中,会有一个Event的传导路线。这个就是Responder Chain (中文解释:响应者链)

Responder Chain

  1. UIKit本身有一套默认的规则 决定了每个Responder的next Responder,当前Responder无法响应Event时,直接将该Event丢给next Responder
    如下图,当点击文本时
    1.UILabel并不处理点击事件
    2.UIKit会将该事件丢给UILabel的next Responder,此处为它
    的superView
    3.延着链路,一路传递
    UIViewController -> UIWindow -> UIApplication
    image.png
    UIKit本身默认的规则为
    1.UIView的next Responder是superView,当superView为nil时,则为该view所属的container(绝大多数情况为UIViewController或者极少情况下为UIWindow)
    2.UIViewController的next Responder是UIWindow
    3.UIWindow的next Responder是UIApplication

// 基本上2,3的规则是不会去改变的。另外 基于职责分配原则,通常也不会在UIWindow和UIApplication做事件处理

需要特殊说明的是当UIViewController本身是一个containerController,会包含childViewController,childViewController并不会参与到响应者链中,只有childViewController.View才会

待续

相关文章

  • ios的事件处理 一 基本概念

    Key word Event Handling Responder the Responder Chain Res...

  • iOS_UI_04_事件处理

    事件处理 一、事件的基本概念 二、触摸的基本概念 三、响应者链 四、手势

  • iOS 事件以及手势的处理

    iOS 事件以及手势的处理 首先引用深入浅出iOS事件机制,iOS触摸事件处理详解,详解iOS触摸事件与手势识别三...

  • UI部分-事件处理

    iOS事件处理- 用户使用App产生的事件及响应方法: iOS中不是任何对象都能处理事件,只有继承UIRespon...

  • iOS事件的响应者链

    iOS 事件响应者链 1 iOS中的事件 触摸事件 加速计事件 远程控制事件 在iOS中不是任何对象都能处理事件,...

  • iOS和Flutter里的事件处理

    目录先说一下事件处理里的被处理者:事件一、iOS里的事件二、Flutter里的事件然后说一下事件处理里的处理者:响...

  • iOS 事件处理机制与图像渲染过程

    iOS 保持界面流畅的技巧 iOS 处理图片的一些小 Tip iOS 事件处理机制与图像渲染过程

  • 《iOS事件触摸与手势》

    iOS事件触摸与手势 一、事件分发处理【由外到内】在iOS中发生触摸后,事件会加到UIApplication事件队...

  • iOS触摸事件处理

    iOS触摸事件处理 主要是记录下iOS的界面触摸事件处理机制,然后用一个实例来说明下应用场景.一、处理机制界面响应...

  • iOS 响应链

    iOS开发 - 事件传递响应链iOS 响应者链,事件的传递事件传递之响应链Cocoa Touch事件处理流程--响...

网友评论

      本文标题:ios的事件处理 一 基本概念

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