03-寻找最合适的View
如何寻找最合适的View?
1.先判断自己是否能够接收触摸事件,如果能再继续往下判断,
2.再判断触摸的当前点在不在自己的身上.
3.如果在自己身上,它会从后往前遍历子控件,遍历出每一个子控件后,重复前面的两个步骤.
4.如果没有符合条件的子控件,那么它自己就是最适合的View.
代码实现:
#import "ZYQWindow.h"
@implementation ZYQWindow
//当事件传递给当前View的时候,会调用一个方法,去寻找最适合的View.
//作用:去寻找最适合的View.
//什么时候调用:当事件传递给当前View的时候
//返回值:找到的最适合的View.
-(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event{
UIView *fitView = [super hitTest:point withEvent:event];
// return self.subviews[0];
return fitView;
}
//作用:判断当前的点在不在方法调用者的身上.
//什么时候调用:在hitTest内部调用pointInside.
//注意点.point必须得要是跟方法调用者同一个坐标系.
-(BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event{
return NO;
}
@end