项目中遇到一种情况,有一个自定义的透明层B(View),覆盖了整个窗口,下面还有一个层A(View)。结果点击A层上的按钮,不起作用,原因是事件被B层给拦截了,事件传达不到A层。
知道原因,就好解决了,让B层不响应事件就可以了。添加下面的代码,到你的自定义View中,试一下
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event{
    
    UIView *hitView = [super hitTest:point withEvent:event];
    
    if(hitView == self){
        return nil;
    }
    return hitView;
}