簡體   English   中英

停止觀看僅在Swift中第一次正常

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM