【发布时间】:2020-08-25 21:44:50
【问题描述】:
我想知道如何在 00:00 停止我的简单计时器。
我在条件语句中添加了“else if seconds
但是,它停在 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()
}
}
【问题讨论】:
-
在你的定时器失效并将你的标签设置为零后添加一个返回
-
另一种方法 - 除了已经提供的两种方法 - 只需将您的条件从
<更改为<=,如} else if seconds <= 0。
标签: swift xcode timer conditional-statements invalidation