项目中遇到一种情况,有一个自定义的透明层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;
}