init(isOn:label:)
init(_:isOn:)
init(_:isOn:)
struct HomeSecurity: Hashable, Identifiable { var id = UUID() var armed: Bool var name: String }
extension HomeSecurity { static var exampleData: [HomeSecurity] = [ .init(armed: false, name: "Garage Door"), .init(armed: true, name: "Front Door"), .init(armed: true, name: "Back Door"), .init(armed: false, name: "Camera 1"), .init(armed: false, name: "Camera 2"), .init(armed: true, name: "Motion Sensor"), ] }
@State var homeSecurity = HomeSecurity.exampleData
ForEach(homeSecurity) { sec in HStack { Text(sec.name) Spacer() Image(systemName: sec.armed ? "checkmark.circle" : "circle") .foregroundColor(sec.armed ? .green : .red) } }
Toggle(isOn: $homeSecurity.lazy.map(\.armed)) { Text("Home Security") .bold() }
struct ContentView: View { @State var homeSecurity = HomeSecurity.exampleData var body: some View { VStack(spacing: 20) { Text("DevTechie") .font(.largeTitle) Divider() ForEach(homeSecurity) { sec in HStack { Text(sec.name) Spacer() Image(systemName: sec.armed ? "checkmark.circle" : "circle") .foregroundColor(sec.armed ? .green : .red) } } Toggle(isOn: $homeSecurity.lazy.map(\.armed)) { Text("Home Security") .bold() } } .padding() } }
struct ContentView: View { @State var homeSecurity = HomeSecurity.exampleData var body: some View { VStack(spacing: 20) { Text("DevTechie") .font(.largeTitle) Divider() ForEach($homeSecurity) { sec in Toggle(isOn: sec.armed) { Text(sec.name.wrappedValue) } } Toggle(isOn: $homeSecurity.lazy.map(\.armed)) { Text("Home Security") .bold() } } .padding() } }
struct ContentView: View { @State var homeSecurity = HomeSecurity.exampleData var body: some View { VStack(spacing: 20) { Text("DevTechie") .font(.largeTitle) Divider() DisclosureGroup { ForEach($homeSecurity) { sec in Toggle(isOn: sec.armed) { Text(sec.name.wrappedValue) } .padding() } } label: { Toggle(isOn: $homeSecurity.lazy.map(\.armed)) { Text("Home Security") .bold() } } } .padding() } }
With that we have reached the end of this article. Thank you once again for reading. Subscribe our newsletter at https://www.devtechie.com