响应链

【响应链】cocoatouch事件处理流程深入解析

百般思念 提交于 2019-12-05 13:19:56
###cocoatouch 事件处理流程 apple 文档 传递链和响应链 传递链:由系统向离用户最近的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)对象。 ###避开事件处理 UIView不接受触摸事件的三种情况: 1.不接收用户交互 userInteractionEnabled = NO 2.隐藏 hidden = YES 3.透明 alpha = 0.0 ~ 0.01 注意:UIImageView的userInteractionEnabled默认就是NO,