在SwiftUI中制作一个计时器来显示经过了多少时间可以通过以下步骤实现:
TimerView
的SwiftUI视图。TimerView
中声明一个@State
属性来存储经过的时间,例如@State private var elapsedTime = 0
。TimerView
的body中,使用Text
组件来显示经过的时间,例如Text("\(elapsedTime) seconds")
。TimerView
的body中,使用onAppear
修饰符来启动计时器,例如onAppear(perform: startTimer)
。TimerView
中创建一个私有方法startTimer
来启动计时器。在该方法中,使用Timer.scheduledTimer
方法创建一个计时器,并设置计时器的时间间隔和重复行为。每次计时器触发时,更新elapsedTime
属性的值。TimerView
的body中,使用onDisappear
修饰符来停止计时器,例如onDisappear(perform: stopTimer)
。TimerView
中创建一个私有方法stopTimer
来停止计时器。在该方法中,调用计时器的invalidate
方法来停止计时器。以下是一个完整的示例代码:
import SwiftUI
struct TimerView: View {
@State private var elapsedTime = 0
private var timer: Timer?
var body: some View {
Text("\(elapsedTime) seconds")
.onAppear(perform: startTimer)
.onDisappear(perform: stopTimer)
}
private func startTimer() {
timer = Timer.scheduledTimer(withTimeInterval: 1, repeats: true) { _ in
elapsedTime += 1
}
}
private func stopTimer() {
timer?.invalidate()
}
}
struct ContentView: View {
var body: some View {
TimerView()
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
这个计时器会在视图出现时开始计时,并在视图消失时停止计时。每秒钟,经过的时间会自动更新并显示在界面上。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云