如何使 SwiftUI 表单中的每个按钮可点击?

问题描述 投票:0回答:1

我已经使用 HStack 堆叠了按钮,但每当我单击任何按钮时,我只选择最后定义的按钮,在这种情况下,我选择“区域”按钮。我认为这应该是一个视图重叠的问题。

struct ContentView: View {
    @State var selectedOption: String = ""
    var body: some View {
        Form{
            Section {
                        HStack(spacing: 1) {
                            Button ("Weight") {
                                selectedOption = "Weight"
                            }   .padding()
                                .foregroundColor(.mint)
                                .background(.black)
                                .font(.title3)
                                
                            Button ("Length") {
                                selectedOption = "Length"
                            }   .padding()
                                .foregroundColor(.mint)
                                .background(.black)
                                .font(.title3)
                            Button ("Temperature") {
                                selectedOption = "Temperature"
                            }   .padding()
                                .foregroundColor(.mint)
                                .background(.black)
                                .font(.title3)
                            Button ("Area") {
                                selectedOption = "Area"
                            }   .padding()
                                .foregroundColor(.mint)
                                .background(.black)
                                .font(.title3)
                        }
            }
            Section {
                if selectedOption == "Weight" {
                    Weight_View()
                }else {
                    Text (selectedOption)
                }
                
            }.frame(height: 500)
        }
    }
}```
ios swift swiftui view
1个回答
0
投票

iOS 上默认的

Button
样式占据
Section
Form
的整行。

要解决此问题,您可以向每个按钮添加以下内容:

.buttonStyle(.plain)

添加后,每个

Button
都可以单独按下。

© www.soinside.com 2019 - 2024. All rights reserved.