如何在倒数计时完成后迅速创建倒数计时

问题描述 投票:1回答:1

[[Swift的新手]我正在Swift 5上制作一个应用,该应用显示了我的下一个任务开始之前的剩余时间。

我的应用程序:


任务1:从9.30 am开始

[任务2:从10.15 am开始

比方说当前时间:09.00 am

倒数:下一个任务开始之前的时间= 00:30:02-> 00:30:01 ...


我想显示最近任务的倒计时。

目前,我的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谢谢

ios swift countdowntimer
1个回答
0
投票

我意识到上面的代码有效。我只需要确保我不会在else块中使计时器无效。使计时器无效只会杀死它。

© www.soinside.com 2019 - 2024. All rights reserved.