快速问题,如何在00:00停止我的计时器,而不是负数

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

我想知道如何在00:00停止简单的计时器。

我在条件语句中添加了“否则,如果秒<0,则无效()”

但是,它在00.-1处停止。

[作为初学者,我想我错过了一些简单的语法或逻辑。

我需要您的大力支持。

谢谢:)

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var showTime: UILabel!

    var timer = Timer()
    var timeSet = 0

    override func viewDidLoad() {
        super.viewDidLoad()

    }

    @IBAction func buttonToSet(_ sender: UIButton) {

        stopTimer()
        timeSet += 5
        timer = Timer.scheduledTimer(timeInterval: 1.0, target:self, selector: #selector(setTimer), userInfo:nil, repeats: true)

    }

    @IBAction func buttonToReset(_ sender: UIButton) {

        stopTimer()
        timeSet = 0
        showTime.text = "00:00"

    }

    @objc func setTimer() {

        let seconds = timeSet % 60
        var secondsString = "\(seconds)"
        let minutes = timeSet / 60
        var minutesString = "\(minutes)"

        if seconds < 10 && seconds >= 0 {
            secondsString = "0\(seconds)"
        } else if seconds < 0 {
            timer.invalidate()
        }


        if minutes < 10 {
            minutesString = "0\(minutes)"
        }

        showTime.text = "\(minutesString):\(secondsString)"
        timeSet -= 1

    }

    func stopTimer() {
        timer.invalidate()
    }

}
swift xcode timer conditional-statements invalidation
1个回答
0
投票

更新您的条件...当前,当秒数低于0 ..则计时器无效...

 if seconds < 10 && seconds >= 0 {
     secondsString = "0\(seconds)"

         if seconds == 0 {
            timer.invalidate()

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