如何在 SwiftUI 中仅实现一种类似于 radiogroup 的可能选择

The*_*ord 1 swiftui

如何使用 SwiftUI 中的视图列表仅实现类似于一组单选按钮的单个选择?

样品

Cra*_*ple 5

当按下按钮时,您可以存储选择的值。

您可以根据选择的按钮设置样式。

以下代码应该可以满足您的要求。最后按下哪个按钮会被选中,只有选中的按钮会是蓝色的,因为样式是基于属性的。另一个按钮清除选择。

struct ContentView: View {

    let buttons = ["A", "B", "C"]
    @State public var buttonSelected: Int?

    var body: some View {
        VStack(spacing: 20) {
            ForEach(0..<buttons.count) { button in
                Button(action: {
                    self.buttonSelected = button
                }) {
                    Text("Button \(self.buttons[button])")
                        .padding()
                        .foregroundColor(.white)
                        .background(self.buttonSelected == button ? Color.blue : Color.green)
                        .clipShape(Capsule())
                }
            }
            Button(action: {
                self.buttonSelected = nil
            }) {
                Text("Clear Selection")
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明