首页 > 解决方案 > SwiftUI 切换不改变值

问题描述

我正在尝试实现过滤器视图,但是,Toggles它们不起作用。

这是我的代码:

struct FilterDropdown: View {
    
    @State private var A = false

    var body: some View {
        VStack {
            Group {
                HStack {
                    Text("A")
                        .foregroundColor(Color.black)
                        .bold()
                    Spacer()
                }
                Toggle(isOn:$A) {
                    Text("A")
                        .foregroundColor(Color.black)
                }
            }
            
            Group {
                HStack {
                    Text("To Do")
                        .foregroundColor(Color.black)
                        .bold()
                    Spacer()
                }
                .listRowBackground(Color.init(red: 211/255, green: 211/255, blue: 213/255))
            }
            
            Group {
                HStack {
                    Text("Transport")
                        .foregroundColor(Color.black)
                        .bold()
                    Spacer()
                }
                .listRowBackground(Color.init(red: 211/255, green: 211/255, blue: 213/255))
                
                TransportTypeToggles()
            }
            
        }
        .padding()
        .background(Color(red: 239/255, green: 239/255, blue: 239/255, opacity: 1))
    }
}

struct TransportTypeToggles: View {
    @State private var A = false
    @State private var B = false
    @State private var C = false
    @State private var D = false
    @State private var E = false
    @State private var F = false
    
    var body: some View {
        Toggle(isOn:$A) {
            Text("A")
                .foregroundColor(Color.black)
        }
        
        Toggle(isOn: $B) {
            Text("B")
                .foregroundColor(Color.black)
        }
        
        Toggle(isOn: $C) {
            Text("C")
                .foregroundColor(Color.black)
        }
        
        Toggle(isOn: $D) {
            Text("D")
                .foregroundColor(Color.black)
        }
        
        Toggle(isOn: $E) {
            Text("E")
                .foregroundColor(Color.black)
        }
        
        Toggle(isOn: $F) {
            Text("F")
                .foregroundColor(Color.black)
        }
        .disabled(true)
        
        Toggle(isOn: $G) {
            Text("G")
                .foregroundColor(Color.black)
        }
        .disabled(true)
    }
}

但是,如果我将它们放在Toggles里面,List它们就可以工作,这不是我正在寻找的界面。

有任何想法吗?

标签: iosswiftxcodeswiftuitoggle

解决方案


推荐阅读