如何从UIButton停止计时器?

时间:2016-12-31 05:45:28

标签: ios swift timer uibutton

下面的代码是一个计时器。 3秒后,我希望用户能够关闭计时器。我试着在注释掉的部分解释我试图做的事情 - 我尝试了我注释掉但是没有用。我想保持代码相同,我只需要找到一种方法来使用UIButton i来停止计时器。

import UIKit
class ViewController: UIViewController {
    @IBOutlet var i: UIButton!
    @IBOutlet var u: UILabel!

    var time = 0
    var timer = Timer()

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

    @IBAction func start(_ sender: Any) {
        b()
    }

    func action() {
        time += 1
        u.text = String(time)
        if time == 2 {
            u.alpha = 0   
        }
        else if time > 3 {
            u.alpha = 0.5

               //  if i.isSelected{
                 //  timer.invalidate}
        }
        else {
            return
        }
    }
    func b(){
        timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(ViewController.action), userInfo: nil, repeats: true)   
    }

1 个答案:

答案 0 :(得分:2)

  • 将计时器声明为可选

    var timer : Timer?
    
  • IBAction start替换为

    @IBAction func start(_ sender: AnyObject) {
        if timer == nil {
           b()
        } else {
           timer?.invalidate()
           timer = nil
        }
    }