Pular para o conteúdo
Skip

Timer

Este conteúdo não está disponível em sua língua ainda.

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
}
}
}