在 SwiftUI 中,可以使用 Timer 对象来处理计时器。可以使用以下步骤创建计时器:
-
声明一个 @State 属性来存储计时器计数器的当前值。
-
在视图的 body 中创建一个 Timer 对象。
-
通过使用 onReceive 修饰符来更新计时器的计数器。
以下是一个简单的 SwiftUI 计时器示例:
import SwiftUI
struct ContentView: View {
@State var counter = 0
var body: some View {
VStack {
Text("\(counter)")
.font(.largeTitle)
Button(action: {
// Start the timer
let _ = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true) { _ in
self.counter += 1
}
}, label: {
Text("Start Timer")
})
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
在这个例子中,我们创建了一个名为 counter 的 @State 属性来存储计时器的计数器。在 body 中,我们创建了一个包含计数器和一个按钮的 VStack。
当点击按钮时,我们使用 Timer.scheduledTimer() 方法来创建一个计时器,并将其存储为 _,因为我们不需要对计时器对象进行其他操作。
我们还传递了一个 TimeInterval 参数,以指定计时器的时间间隔(这里为 1 秒)。在计时器触发时,我们使用闭包将 counter 属性加 1。
最后,我们在按钮上使用标签“Start Timer”来启动计时器。每次计时器触发时,计时器的计数器将增加 1,因此我们的Text视图也将更新。