我在keyWindow
UIWindow *window = [[UIApplication sharedApplication] keyWindow];
_topLayer = [[UIView alloc] initWithFrame:window.frame];
_topLayer.backgroundColor = [UIColor clearColor];
_topLayer.userInteractionEnabled = NO;
[window addSubview:_topLayer];
我添加了想要出现在所有内容之上的子视图。我用了
userInteractionEnabled = NO
因此该图层不会阻止对下方工作人员的点击。
我试图在该图层的顶部添加UIButton,但由于上述userInteractionEnabled = NO
如何让按钮保持响应,同时让整个背景保持透明?
提前谢谢!
答案 0 :(得分:1)
您可以执行此操作:subclass
UIView
与userInteractionEnabled=YES
然后使用此代码段:
-(id)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
id hitView = [super hitTest:point withEvent:event];
if (hitView == self) return nil; // <--- pass-through if touch on UIView
else return hitView; // touch on children
}
答案 1 :(得分:0)
@anhtu的回答是我试图实现的真正复杂因素。正确的方法是将按钮设置为透明视图的兄弟,而不是将其添加为子视图。