Ios 按钮点击触发,尽管点击下面的按钮

Ios 按钮点击触发,尽管点击下面的按钮,ios,swiftui,swiftui-scrollview,Ios,Swiftui,Swiftui Scrollview,我有以下代码。顶部有两个大按钮,下面有许多按钮的滚动视图: struct ContentView: View { var body: some View { VStack (spacing: 0) { HStack (spacing: 0) { Button(action: {}, label: {Image("button_background")}) Butto

我有以下代码。顶部有两个大按钮,下面有许多按钮的滚动视图:

struct ContentView: View {
    var body: some View {
        VStack (spacing: 0) {
            HStack (spacing: 0) {
                Button(action: {}, label: {Image("button_background")})
                Button(action: {}, label: {Image("button_background")})
            }
            ScrollView {
                LazyVGrid(columns: [GridItem(.adaptive(minimum: 64))], spacing: 0) {
                    ForEach(1...4, id: \.self) { number in
                        Button(action: {}, label: {
                            ZStack {
                                Color(.gray)
                                Text("A").foregroundColor(.white)
                            }
                        })
                    }
                }
            }
        }
    }
}
但是当我点击ScrollView第一行中的一个按钮时,上面HStack中的按钮就会被触发。例如,看下面的照片。我点击“A”(黑点,我无法显示光标),但上面的大按钮被触发(并变成灰色)。我怎样才能解决这个问题

XCode版本12.3


您可以使用
.contentShape()
控制视图的可点击区域


在您的情况下,您可以在
HStack
之后添加
.contentShape(Rectangle())

我将您的代码复制粘贴到clean SwiftUI项目中,并且一切正常,您单击A,它触发A,您单击大按钮,它触发大按钮。问题是什么?我也在使用上面粘贴的代码。这取决于我点击的位置。如果我点击“A”的下半部分,它会按预期工作,但如果我点击“上半部分”,它会触发大按钮。如果你点击尽可能高的“A”,它对你有用吗?XCode版本12.3