web-dev-qa-db-ja.com

SwiftUIでタイマーを使用してテキストを更新する方法

テキストが表示されているので、毎秒アラートを使用してそのテキストを更新します。

これが私が行ったコードです。

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

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

警告を使用してテキストを更新できました。

私は日付をStateと宣言しているので、アラートテキストを使用して日付が変更されるたびに更新されます。

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

結合の使用:

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