jeudi 18 février 2021

How to change the label of a button by using an if statement in SwiftUI

I want my button to look different after pressing the button. I am trying to do so by using a ZStack and an if statement. I don't understand why it won't toggle between a black button and a white button... P.S. I am getting experience using ObservableObject protocol.

class WelcomeButton: ObservableObject {
    @Published var hasBeenPressed = false
}

struct WelcomeScreenButton: View {
    @ObservedObject var welcomeButton = WelcomeButton()
    
    var body: some View {
        ZStack {
            if welcomeButton.hasBeenPressed {
                Circle()
                    .fill(Color(.white))
            }
            else {
                Circle()
                    .fill(Color(.black))
            }
        }
    }
}

struct ContentView: View {
    @ObservedObject var welcomeButton = WelcomeButton()
    
    var body: some View {
        VStack {
            Button(action: {welcomeButton.hasBeenPressed.toggle()})
            {
                WelcomeScreenButton()
            }
            .frame(width: 375, height: 375, alignment: .center)
        }
    }
}

Aucun commentaire:

Enregistrer un commentaire