Post

Replies

Boosts

Views

Activity

Power button + 2 mode buttons - conditional behavior
Case Toggle between two modes - night and normal one. They can't be turn on at the same time. Also, you can turn them off individually - see here -> https://www.dropbox.com/s/6mr7r31556on96j/SR_02.mov?dl=0 class ButtonProperties: ObservableObject {     @Published var PowerButtonDisabled:Bool = true     @Published var NightModeDisabled:Bool = true     @Published var NormalModeDisabled:Bool = true } struct ThreeButtonsView: View {     @StateObject var buttonProperties: ButtonProperties = ButtonProperties()     var body: some View {         // MARK: Power button         Button(action: {             buttonProperties.NormalModeDisabled = !true         }, label: {             Image(systemName: "power")                 .resizable()                 .frame(width: 50, height: 50)                 .onTapGesture {                     withAnimation(.easeInOut(duration: 0.2)) {                         buttonProperties.PowerButtonDisabled.toggle()                     }                 }                 .foregroundColor(buttonProperties.PowerButtonDisabled ? .black : .green)                 .scaleEffect(buttonProperties.PowerButtonDisabled ? 1.0 : 0.5)         })         // MARK: Night Mode button         Button(action : {             // code         }, label: {             Image(systemName: "moon.fill")                 .resizable()                 .frame(width: 50, height: 50)                 .onTapGesture {                     withAnimation(.easeInOut(duration: 0.2)) {                         buttonProperties.NightModeDisabled.toggle()                     }                 }         })         .disabled(buttonProperties.PowerButtonDisabled)         .foregroundColor(buttonProperties.NightModeDisabled ? .gray.opacity(0.25) : .green)         .scaleEffect(buttonProperties.PowerButtonDisabled ? 0.5 : 1.0)         // MARK: Normal Mode button         Button(action : {             // code         }, label: {             Image(systemName: "sun.max.fill")                 .resizable()                 .frame(width: 50, height: 50)                 .font(.system(size: 50))                 .onTapGesture {                     withAnimation(.easeInOut(duration: 0.2)) {                         buttonProperties.NormalModeDisabled.toggle()                     }                 }         })         .disabled(buttonProperties.PowerButtonDisabled)         .foregroundColor(buttonProperties.NormalModeDisabled ? .gray.opacity(0.25) : .green)         .scaleEffect(buttonProperties.PowerButtonDisabled ? 0.5 : 1.0)     } }
0
0
341
Jun ’22