IOS 上层视图遮住底层按钮导致下层视图无法点击

重写UIView的- (UIView*)hitTest:(CGPoint)point withEvent:(UIEvent *)event;方法
就拿下面代码为例:如果点击的父视图控件是window 和 非按钮(uibutton 继承自UIControl )就不允许点击,就是自己限制自己的上层视图或者窗体那些控件可以点击,那些不可点击,也就是将点击事件截取了,自己来决定是否下往下层传递,如果是nil 就允许下层传递

- (UIView*)hitTest:(CGPoint)point withEvent:(UIEvent *)event{
    UIView *hitView = [super hitTest:point withEvent:event];
    //如果上层透明视图是window 和 按钮(uibutton 继承自UIControl )就允许点击
    if(hitView.window == self && ![hitView isKindOfClass:[UIControl class]]){
        return nil;
    }
    return hitView;
}

猜你喜欢

转载自blog.csdn.net/bobbob32/article/details/80890722
今日推荐