[英]Stop watch working fine only first time in Swift
我迅速制作了秒表。 它具有三個按鈕-播放,停止,重置。 它的中間有個顯示屏,顯示經過的秒數。
我的代碼運行良好。 但是手表在停止或重置后運行非常快。
我無法弄清楚有什么大驚小怪。
請幫忙!
var time = 0
var timer = NSTimer()
var pause = Bool(false)
@IBOutlet var result: UILabel!
func displayResult() {
if pause != true
{
time++
result.text = String(time)
}
}
@IBAction func reset(sender: AnyObject) {
time = 0
result.text = String(time)
}
@IBAction func pause(sender: AnyObject) {
pause = true
}
@IBAction func play(sender: AnyObject) {
pause = false
timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("displayResult") , userInfo: nil, repeats: true)
}
您的pause
動作應為:
@IBAction func pause(sender: AnyObject) {
timer.invalidate()
pause = true
}
UPD:
var time = 0
var timer = NSTimer()
var pause = true // 1
func displayResult() {
if pause != true
{
time++
label.text = String(time)
}
}
@IBAction func reset(sender: AnyObject) {
time = 0
label.text = String(time)
timer.invalidate() // 2
pause = true // 3
}
@IBAction func pause(sender: AnyObject) {
timer.invalidate() // 4
pause = true
}
@IBAction func play(sender: AnyObject) {
// 5
if pause == true {
timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("displayResult") , userInfo: nil, repeats: true)
pause = false
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.