swiftui - 我怎样才能在 SwiftUI 中实现类似于 radiogroup 的一种可能选择

如何在 SwiftUI 中使用 View 列表实现类似于一组单选按钮的单一选择?

最佳答案

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

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

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

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")
            }
        }
    }
}

https://stackoverflow.com/questions/61860758/

相关文章:

react-native - React 导航 5(导航到另一个堆栈屏幕)

swift - 如何不 dispatch 如此频繁?

php - 如何解决 "The process has been signaled with sig

forms - 如何判断表单字段在 vue.js 中是否无效

python - 将 Selenium 与 PyCharm CE 一起使用时的弃用问题

amazon-web-services - 有没有办法使用 aws cloudformation 更

typescript - 如何使用可选的唯一字符串定义数组 typescript 接口(interf

python - 在对数刻度上生成均匀间隔的值(如 `np.linspace()` ,但在对数刻度上

python - matplotlib 为单个散点图添加具有多个条目的图例

python - 生成最多 2 个重复的 3 个数字的列表