web-dev-qa-db-fra.com

Comment mettre à jour du texte à l'aide de la minuterie dans SwiftUI

J'ai du texte en vue maintenant, je veux mettre à jour ce texte en utilisant une alerte à chaque seconde.

Voici le code que j'ai fait.

struct CountDownView : View {
    var body: some View {       
        VStack{
            Text("Update text with timer").lineLimit(nil).padding(20)

            }.navigationBarTitle(Text("WWDC"), displayMode:.automatic)
    }
}        
8
PinkeshGjr

j'ai réussi à mettre à jour le texte en utilisant l'alerte.

j'ai déclaré la date comme State donc chaque fois que la date est modifiée à l'aide du texte d'alerte sera également mis à jour.

struct CurrentDateView : View {
    @State var newDate = Date()

    let timer = Timer.publish(every: 1, on: .current, in: .common).autoconnect()

    var body: some View {
        Text("\(newDate)")
            .onReceive(timer) {
                self.newDate = Date()
            }
    }
}
1
PinkeshGjr

Utilisation de moissonneuse-batteuse:

struct CurrentDateView : View {
    @State var now = Date()

    let timer = Timer.publish(every: 1, on: .current, in: .common).autoconnect()

    var body: some View {
        Text("\(now)")
            .onReceive(timer) {
                self.now = Date()
            }
    }
}
16
jla