[[Swift的新手]我正在Swift 5上制作一个应用,该应用显示了我的下一个任务开始之前的剩余时间。
我的应用程序:
比方说当前时间:09.00 am
我想显示最近任务的倒计时。
目前,我的viewonLoad()上只能有一个倒数计时器,用于拾取当前倒数。它继续执行,一旦完成,完成后就不会启动下一个计时器。我知道我必须稍后处理背景状态,但是由于我正在慢慢开始。我的想法是确保我当前的计时器到期后可以启动下一个倒数计时器。
因此,当我打开我的应用程序时,它将始终显示倒数,直到我执行下一个任务。
var count = 30 // calculation simplified ... this data is calc from two different date obj
override func viewDidLoad() {
super.viewDidLoad()
timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(update), userInfo: nil, repeats: true)
}
@objc func update() {
if(count > 0) {
count = count - 1
countdownLabel.text = String(count)
}else{
timer!.invalidate()
getNextTaskTimes()
}
}
func getNextTaskTimes(){
count = 5 // not working
}
请问如何实现?另外,还有更好的方法吗?鉴于此,我的用户可以选择关闭该应用程序,然后稍后再返回,我仍然希望我的倒计时在后台继续进行。
感谢您的帮助。 :D谢谢
我意识到上面的代码有效。我只需要确保我不会在else块中使计时器无效。使计时器无效只会杀死它。