You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SwiftUI中实现Toggle选中项点数统计功能的方法

解决SwiftUI中Toggle组件的点数计算问题

你可以通过添加状态变量存储计算结果,并在按钮点击时遍历各Toggle的选中状态来实现需求。以下是修改后的完整代码:

struct ContentView: View {
    @State private var elderly = false
    @State private var immobility = false
    @State private var cancer = false
    // 新增状态变量存储计算结果
    @State private var selectedCount = 0
    @State private var totalPoints = 0
    
    var body: some View {
        VStack {
            Toggle(isOn: $elderly) {
                Text("> 65")
            }
            .padding()
            
            Toggle(isOn: $immobility) {
                Text("Immobility")
            }
            .padding()

            Toggle(isOn: $cancer) {
                Text("Cancer")
            }
            .padding()
            
            Button {
                // 重置计数
                selectedCount = 0
                totalPoints = 0
                
                // 根据选中状态累加数量和点数
                if elderly {
                    selectedCount += 1
                    totalPoints += 2
                }
                if immobility {
                    selectedCount += 1
                    totalPoints += 1
                }
                if cancer {
                    selectedCount += 1
                    totalPoints += 2
                }
            } label: {
                Text("Calculate")
            }
            .fontWeight(.bold)
            .frame(width: 200.0, height: 50)
            .background(Color.blue)
            .cornerRadius(10)
            .foregroundColor(.white)
            .font(.system(size: 20))
            .padding()
            
            // 显示计算结果
            Text("选中数量:\(selectedCount)")
                .font(.title2)
                .padding(.bottom, 8)
            Text("总点数:\(totalPoints)")
                .font(.title2)
        }
    }
}

关键说明

  • 新增selectedCount和totalPoints两个@State变量,用于管理选中数量和总点数的状态,SwiftUI会自动根据变量更新UI。
  • 点击按钮时先重置计数,再逐个判断每个Toggle的选中状态,分别累加对应数量和点数。
  • 在界面底部添加文本组件,实时展示计算后的结果。

当所有Toggle都选中时,selectedCount为3,totalPoints为5,符合需求。

内容的提问来源于stack exchange,提问作者Alfred Wong

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 09:26:01