-
UIEvent:分为三类Touch、Motion、Remote UIResponder:Hit-Testing:Responder chain:UIControl:
一、几个规则
- 1、如果当前的
View是ViewController的rootView,那么它的nextResponder就是ViewController,否者next responder指向的就是superView - 2、如果
ViewController的View是当前Windows的rootView,当前nextResponder指向的就是Windows - 3、如果当前的
ViewController是被其他ViewControllerpresented的,当前的nextResponder指向的就是the presenting view controller - 4、
UIWindow的nextResponder指向的是UIApplication object - 5、
UIApplication对象的nextResponder指向的就是app delegate,但是当前的app delegate应该是UIResponder的对象,而不是view,viewController。
二、三个问题
1、响应链是如何构建的
2、事件的第一个响应者是如何确定的
通过hitTest: withEvent:和pointInside: withEvent:这个两个方法,最佳响应者查找
3、系统是如何传递事件的?
1、UIView
2、手势
3、UIControl(addTarget)











网友评论