###cocoatouch 事件处理流程html
apple 文档ios
传递链和响应链app
传递链:由系统向离用户最近的view传递。UIKit –> active app’s event queue –> window –> root view –>……–>lowest view 响应链:由离用户最近的view向系统传递。initial view –> super view –> …..–> view controller –> window –> Application
在IOS中,由响应者链来对事件进行响应,全部事件响应的类都是UIResponder的子类. 用户触摸屏幕的地方。事件将沿着响应者链一直向下传递,直到被接受并作出处理。 通常来讲,第一响应者是个视图对象或者其子类对象,当其被触摸后事件被交由它处理, 若是它不处理,事件就会被传递给它的视图控制器对象viewcontroller(若是存在), 而后是它的父视图(superview)对象。
###避开事件处理ui
UIView不接受触摸事件的三种状况: 1.不接收用户交互 userInteractionEnabled = NO 2.隐藏 hidden = YES 3.透明 alpha = 0.0 ~ 0.01 注意:UIImageView的userInteractionEnabled默认就是NO, 所以UIImageView以及它的子控件默认是不能接收触摸事件的
###事件分类code
一、触屏事件(Touch Event) 二、运动事件(Motion Event) 三、远端控制事件(Remote-Control Event)
###响应者链(Responder Chain)htm
有响应和处理事件能力的对象。响应者链就是由一系列的响应者对象构成的一个层次结构。
若是view是控制器的view,就传递给控制器. 如不是,则将其传递给它的父视图 在视图层次结构的最顶级视图, 若是也不能处理收到的事件或消息,则其将事件或消息传递给window对象进行处理 若是window对象也不处理,则其将事件或消息传递给UIApplication对象 若是UIApplication也不能处理该事件或消息,则将其丢弃