Aller au contenu
Skip

Timer

Ce contenu n’est pas encore disponible dans votre langue.

Skip support for Swift Timer.

The following example screens and source code is from SkipUI’s Showcase sample app TimerPlayground.swift

import SwiftUI
struct TimerPlayground: View {
@State var count = 0
var body: some View {
VStack(spacing: 16) {
TimerPlaygroundTimerView(message: "Tap count: \(count)")
Button("Tap to recompose in 1 sec") {
DispatchQueue.main.asyncAfter(wallDeadline: .now() + 1.0) {
count += 1
}
}
}
.padding()
.toolbar {
PlaygroundSourceLink(file: "TimerPlayground.swift")
}
}
}
private struct TimerPlaygroundTimerView: View {
let message: String
let timer = Timer.publish(every: 1.0, on: .main, in: .default).autoconnect()
@State var timerDate: Date?
var body: some View {
VStack {
Text(message)
Text("Timer date: \(timerDate == nil ? "nil" : timerDate!.description)")
}
.font(.largeTitle)
.onReceive(timer) { date in
timerDate = date
}
}
}