寻找最合适的view

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
原文地址:https://www.cnblogs.com/zhoudaquan/p/5037409.html