SwiftUI onTapGesture可点击区域大于形状

时间:2020-06-13 11:08:52

标签: ios swift swiftui

我正在学习SwiftUI,它的视图非常简单,只有一个带有onTapGesture的形状。我期望onTapGesture只能在单击形状时调用。但是,我注意到,当我单击形状之外(不太远)时,onTapGesture也被触发。有人知道为什么会这样吗?

struct ContentView: View {
    var body: some View {
        RoundedRectangle(cornerRadius: 10)
            .fill(Color.yellow)
            .frame(width: 100, height: 100, alignment: .leading)
            .onTapGesture {
                print("Clicked")
        }
    }
}

enter image description here

更新:

我尝试在Vstack中包含多个元素。当您尝试单击test view2的最底部时,您会在控制台中看到它显示click on view 3

var body: some View {
        VStack {
            ZStack {
                RoundedRectangle(cornerRadius: 20)
                    .foregroundColor(.red)
                Text("test view1")
            }
            .frame(width: 200, height: 100, alignment: .center)
            ZStack {
                RoundedRectangle(cornerRadius: 20)
                    .foregroundColor(.blue)
                Text("test view2")
            }
                .frame(width: 200, height: 100, alignment: .center)
            .onTapGesture {
                print("click on view 2")
            }
            ZStack {
                RoundedRectangle(cornerRadius: 20)
                    .foregroundColor(.green)
                Text("test view3")
            }
                .frame(width: 200, height: 100, alignment: .center)
            .onTapGesture {
                print("click on view 3")
            }

        }
        .frame( maxWidth: .infinity, maxHeight: .infinity, alignment: .bottom)
        .background(Color.black)
    }

0 个答案:

没有答案