Here are the issues
- The code throws a compiling error when more than 5 toggles are repeated.
- Need to close picker without toggling to off position.
- Selected start and stop time show in toggle bar but then it will reset
Current Code: Don't laugh too hard ;-)
import SwiftUI
struct ContentView: View {
@State private var toggleStateM = false
@State private var toggleStateT = false
@State private var toggleStateW = false
@State private var toggleStateTH = false
@State private var toggleStateF = false
//@State private var toggleStateST = false
//@State private var toggleStateSN = false
@State private var startSentryTimeM = Date()
@State private var endSentryTimeM = Date()
@State private var startSentryTimeT = Date()
@State private var endSentryTimeT = Date()
@State private var startSentryTimeW = Date()
@State private var endSentryTimeW = Date()
@State private var startSentryTimeTH = Date()
@State private var endSentryTimeTH = Date()
@State private var startSentryTimeF = Date()
@State private var endSentryTimeF = Date()
// @State private var startSentryTimeST = Date()
// @State private var endSentryTimeST = Date()
// @State private var startSentryTimeSN = Date()
// @State private var endSentryTimeSN = Date()
var body: some View {
VStack(alignment: .center) {
//Monday************
Toggle(isOn: $toggleStateM) {
HStack{
Spacer()
Text("Monday")
Spacer()
Text(" \(startSentryTimeM.formatted(date: .omitted, time: .shortened))")
Text("to")
Text(" \(endSentryTimeM.formatted(date: .omitted, time: .shortened))")
Spacer()
}
}
.frame(width: 350, height: 35, alignment: .center)
.padding(.leading, 20)
if toggleStateM{
HStack{
VStack(alignment: .center){
Text("Sentry Start Time")
DatePicker("", selection: $startSentryTimeM, displayedComponents: .hourAndMinute)
.labelsHidden()
}
.padding(.trailing, 20)
VStack(alignment: .center){
Text("Sentry End Time")
DatePicker("", selection: $endSentryTimeM, displayedComponents: .hourAndMinute)
.labelsHidden()
}
}
}
//Tuesday******************
Toggle(isOn: $toggleStateT) {
HStack{
Spacer()
Text("Tuesday")
Spacer()
Text(" \(startSentryTimeT.formatted(date: .omitted, time: .shortened))")
Text("to")
Text(" \(endSentryTimeT.formatted(date: .omitted, time: .shortened))")
Spacer()
}
}
.frame(width: 350, height: 35, alignment: .center)
.padding(.leading, 20)
if toggleStateT{
HStack{
VStack(alignment: .center){
Text("Sentry Start Time")
DatePicker("", selection: $startSentryTimeT, displayedComponents: .hourAndMinute)
.labelsHidden()
}
.padding(.trailing, 20)
VStack(alignment: .center){
Text("Sentry End Time")
DatePicker("", selection: $endSentryTimeT, displayedComponents: .hourAndMinute)
.labelsHidden()
}
.padding(.leading, 20)
}
}
//Wednesday*************
Toggle(isOn: $toggleStateW) {
HStack{
Spacer()
}
Text("Wedsnesday")
Spacer()
Text(" \(startSentryTimeW.formatted(date: .omitted, time: .shortened))")
Text("to")
Text(" \(endSentryTimeW.formatted(date: .omitted, time: .shortened))")
Spacer()
}
.frame(width: 350, height: 35, alignment: .center)
.padding(.leading, 20)
if toggleStateW{
HStack{
VStack(alignment: .center){
Text("Sentry Start Time")
DatePicker("", selection: $startSentryTimeW, displayedComponents: .hourAndMinute)
.labelsHidden()
}.padding(.trailing, 20)
VStack(alignment: .center){
Text("Sentry End Time")
DatePicker("", selection: $endSentryTimeW, displayedComponents: .hourAndMinute)
.labelsHidden()
}
.padding(.leading, 20)
}
}
//Thursday************
Toggle(isOn: $toggleStateTH) {
HStack{
Spacer()
Text("Thursday")
Spacer()
Text(" \(startSentryTimeTH.formatted(date: .omitted, time: .shortened))")
Text("to")
Text(" \(endSentryTimeTH.formatted(date: .omitted, time: .shortened))")
Spacer()
}
}
.frame(width: 350, height: 35, alignment: .center)
.padding(.leading, 20)
if toggleStateTH{
HStack{
VStack(alignment: .center){
Text("Sentry Start Time")
DatePicker("", selection: $startSentryTimeTH, displayedComponents: .hourAndMinute)
.labelsHidden()
}
.padding(.trailing, 20)
VStack(alignment: .center){
Text("Sentry End Time")
DatePicker("", selection: $endSentryTimeTH, displayedComponents: .hourAndMinute)
.labelsHidden()
}
.padding(.leading, 20)
}
}
//Friday***************
Toggle(isOn: $toggleStateF) {
HStack{
Spacer()
Text("Friday ")
Spacer()
Text(" \(startSentryTimeF.formatted(date: .omitted, time: .shortened))")
Text("to")
Text(" \(endSentryTimeF.formatted(date: .omitted, time: .shortened))")
Spacer()
}
}
.frame(width: 350, height: 35, alignment: .center)
.padding(.leading, 20)
if toggleStateF{
HStack{
VStack(alignment: .center){
Text("Sentry Start Time")
DatePicker("", selection: $startSentryTimeF, displayedComponents: .hourAndMinute)
.labelsHidden()
}
.padding(.trailing, 20)
VStack(alignment: .center){
Text("Sentry End Time")
DatePicker("", selection: $endSentryTimeF, displayedComponents: .hourAndMinute)
.labelsHidden()
}
.padding(.leading, 20)
}
}
//Saturday****************
/* Toggle(isOn: $toggleStateST) {
Text("Saturday" )
}
.padding(.bottom, -5)
.padding(.leading, 15)
.padding(.trailing, 20)
if toggleStateM{
HStack{
VStack{
Text("Sentry Start Time")
DatePicker("", selection: $startSentryTimeST, displayedComponents: .hourAndMinute)
.labelsHidden()
}.padding(.trailing, 20)
VStack{
Text("Sentry End Time")
DatePicker("", selection: $endSentryTimeST, displayedComponents: .hourAndMinute)
.labelsHidden()
}.padding(.leading, 20)
}
*/
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}