有没有一种方法可以使视图“不可应用”,从而允许水龙头与后面的视图连接?

时间:2019-09-22 12:41:14

标签: swift swiftui

我在.overlay中有一个视图,我希望它忽略水龙头,因为它以某种方式阻止了我背后的内容注册任何内容,有没有一种解决方案可以让我简单地添加.ignore这样的属性,因此点按后可以进入包含.onTapGesture的视图吗?

我在应用程序中其他地方也遇到了这个问题,在该视图中.cl仍然被剪切,但超出范围并被剪切(不可见)的部分似乎阻塞了对其后方View的点击。这可能是一个错误,但我不确定

2 个答案:

答案 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