我在.overlay中有一个视图,我希望它忽略水龙头,因为它以某种方式阻止了我背后的内容注册任何内容,有没有一种解决方案可以让我简单地添加.ignore这样的属性,因此点按后可以进入包含.onTapGesture的视图吗?
我在应用程序中其他地方也遇到了这个问题,在该视图中.cl仍然被剪切,但超出范围并被剪切(不可见)的部分似乎阻塞了对其后方View的点击。这可能是一个错误,但我不确定
答案 0 :(得分:2)
使用contentShape
修饰符,您可以定义点击测试的内容形状。如果此形状的宽度和高度为0,则无法点击它。
struct HitTestingView: View {
struct HitTestingShape : Shape {
func path(in rect: CGRect) -> Path {
return Path(CGRect(x: 0, y: 0, width: 0, height: 0))
}
}
var body: some View {
Text("Hello World!")
.padding(20)
.background(Color.blue.cornerRadius(8))
.contentShape(HitTestingShape())
.onTapGesture {
print("Tap")
}
}
}
答案 1 :(得分:-2)
myView.isUserInteractionEnabled = false