响应者链的解析

来源:互联网 发布:录音频的软件 编辑:程序博客网 时间:2024/05/26 19:17

对于响应者连的解释对于iOS设备用户来说,他们操作设备的方式主要有三种:触摸屏幕、晃动设备、通过遥控设施控制设备。

对应的事件类型有以下三种:

1、触屏事件(Touch Event)

2、运动事件(Motion Event)

3、远端控制事件(Remote-Control Event)响应者链(Responder Chain)响应者对象(Responder Object),指的是有响应和处理事件能力的对象。


响应者链就是由一系列的响应者对象构成的一个层次结构。

1、UIResponder有一个nextResponder属性,通过该属性可以组成一个响应者链,事件或消息在其路径上进行传递。

2、如果UIResponder没有处理传给它的事件,会将未处理的消息转发给自己的nextResponder。UIResponder是所有响应对象的基类,在UIResponder类中定义了处理上述各种事件的接口。


我们熟悉的UIApplication、 UIViewController、UIWindow和所有继承自UIView的UIKit类都直接或间接的继承自UIResponder,所以它们的实例都是可以构成响应者链的响应者对象。


响应者链有以下特点:

1、响应者链通常是由视图(UIView)构成的;

2、一个视图的下一个响应者是它视图控制器(UIViewController)(如果有的话),然后再转给它的父视图(Super View);

3、视图控制器(如果有的话)的下一个响应者为其管理的视图的父视图;

4、单例的窗口(UIWindow)的内容视图将指向窗口本身作为它的下一个响应者需要指出的是,Cocoa Touch应用不像Cocoa应用,它只有一个UIWindow对象,因此整个响应者链要简单一点;

5、单例的应用(UIApplication)是一个响应者链的终点,它的下一个响应者指向nil,以结束整个循环。

0 0
原创粉丝点击