Swift 计时器 - 如何阻止 UIButton 文本重置?

Swift Timer - How to stop the UIButton text from resetting?

我有一个简单的 Swift 计时器,可以从 200 倒数到 50

计时器在 viewDidLoad 上设置为 200,并由处理以下 2 种状态的单个 UIButton 控制:

  1. 开始计时(从 200 开始减少)
  2. 停止计时器(使计时器无效并暂停)

UIButton 有一个预填充文本:"Start",其内容将被当前计数器编号覆盖。

我遇到的问题是,当我再次按下按钮暂停计时器时,UIButton 的文本被重置为预填 "Start"

我希望它在用户准备好之前不重置,方法是按下重置按钮(尚未实现)

我的代码如下;我很快会将其放入自定义 UIButton class;我只是希望按钮标签停止重置为“开始”。

let clockStartTime: Int = 200

enum ClockState {
    case Started
    case Stopped
}

class ViewController: UIViewController {

    var timer: NSTimer = NSTimer()
    var counter: Int = clockStartTime
    var clockState: ClockState = .Stopped

    @IBOutlet weak var btnStart: UIButton!

    override func viewDidLoad() {
        super.viewDidLoad()
        updateButtonTitle()
    }

    @IBAction func btnStartPressed(sender: AnyObject) {

        if self.clockState == .Stopped
        {
            self.clockState = .Started

            let timeIncrement:NSTimeInterval = 0.5
            let repeating:Bool = true
            timer = NSTimer.scheduledTimerWithTimeInterval(timeIncrement, target:self, selector: #selector(self.updateCounter), userInfo: nil, repeats: repeating)
        }
        else {
            self.clockState = .Stopped
            timer.invalidate()
        }

    }

    func updateCounter() {
        if counter > 50
        {
            counter -= 1
        }
        else {
            counter = 0
            timer.invalidate()
        }

        updateButtonTitle()
    }

    func updateButtonTitle()
    {
        self.btnStart.titleLabel?.text = String(counter)
    }
}

问题:按下按钮暂停计时器时,按钮标签文本重置为 "Start",而实际上它应该是用户按下暂停计时器的数字。

问题:如何阻止 Swift 将按钮标签的内容重置为 "Start"?

我已经解决了这个问题。

确实与按钮文本的更改方式有关。

self.btnStart.setTitle(String(counter), forState: UIControlState.Normal)

谢谢

\关闭