swiftui是否具有hitTest等效项?

the*_*ols 12 swiftui

我在全局坐标空间中有一个手势的触摸位置,我想从中找出那些坐标处的Rectangle。我怎样才能做到这一点?

Asp*_*eri 5

不,不是的。根据 SwiftUI 设计,应该显式地将点击手势添加到要处理操作的视图中。因此,如果我的视图有一些可点击的元素,我必须将它们作为视图并附加手势,例如

var body: some View {
    HStack {
        Rectangle()
            .fill(Color.red.opacity(0.2))
            .frame(width: 300, height: 300)
            .clipShape(Circle())
            .onTapGesture {
                print("Tapped!")
            }
    }
}
Run Code Online (Sandbox Code Playgroud)

如果某些视图可以重叠,则应使用 .allowsHitTesting(false) 修饰符标记非活动视图。

  • 如果重叠视图应该让触摸通过,但也应该检测到该视图上有触摸,例如关闭,会怎么样? (5认同)