如何在时间用完时自动重启计时器?
How can I automatically restart a timer when time runs out?
我正在尝试开始倒计时,一旦它达到 0,就会自动重新启动计时器回到 10。我觉得这应该很简单,但我遇到了问题。
@IBOutlet weak var timerLabel: UILabel!
var defaultTime = 10
var timer = Timer()
func startTimerFunc() {
timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(ViewController.action), userInfo: nil, repeats: true)
}
@IBAction func startTimerBtn(_ sender: UIButton) {
startTimerFunc()
}
func resetTimer() {
timer.invalidate()
defaultTime = 0
}
@objc func action() {
defaultTime -= 1
timerLabel.text = String(defaultTime)
if timerLabel.text == "0" {
resetTimer()
startTimerFunc()
}
}
计时器保持运行直到你invalidate
它,这里你只需要重新设置默认时间:
@objc func action() {
if defaultTime == 0 {
defaultTime = 10
}
defaultTime -= 1
timerLabel.text = String(defaultTime)
}
我正在尝试开始倒计时,一旦它达到 0,就会自动重新启动计时器回到 10。我觉得这应该很简单,但我遇到了问题。
@IBOutlet weak var timerLabel: UILabel!
var defaultTime = 10
var timer = Timer()
func startTimerFunc() {
timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(ViewController.action), userInfo: nil, repeats: true)
}
@IBAction func startTimerBtn(_ sender: UIButton) {
startTimerFunc()
}
func resetTimer() {
timer.invalidate()
defaultTime = 0
}
@objc func action() {
defaultTime -= 1
timerLabel.text = String(defaultTime)
if timerLabel.text == "0" {
resetTimer()
startTimerFunc()
}
}
计时器保持运行直到你invalidate
它,这里你只需要重新设置默认时间:
@objc func action() {
if defaultTime == 0 {
defaultTime = 10
}
defaultTime -= 1
timerLabel.text = String(defaultTime)
}