代码之家  ›  专栏  ›  技术社区  ›  user8105388

If语句不与计时器一起工作

  •  0
  • user8105388  · 技术社区  · 6 年前

    当10秒计时时。我想改变背景色。现在我的代码不起作用。当代码达到10秒时,没有任何更改。我也不认为计时器在工作。

    @IBOutlet var espn: UILabel!
    
    var TIMER = Timer()
    var seconds = 0
    
    
    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
    
    
    
    
        if seconds == 10{self.view.backgroundColor = UIColor.red
        }
    
    }
    @IBAction func startTimer() {       
    
            TIMER = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(threeVC.clocker), userInfo: nil, repeats: true)
    
    
    }
    
    
    @objc func clocker() {
        seconds += 1
        espn.text = String( seconds)   
        }
    }
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   Kazunori Takaishi    6 年前

    请尝试以下代码:

    @IBOutlet var espn: UILabel!
    
    var TIMER = Timer()
    var seconds = 0
    
    
    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)        
    }
    
    @IBAction func startTimer() {
    
        TIMER = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(threeVC.clocker), userInfo: nil, repeats: true)
    
    
    }
    
    
    @objc func clocker() {
        seconds += 1
        espn.text = String( seconds)
        if seconds == 10{
            self.view.backgroundColor = UIColor.red
            print("soda")
        }
    }
    

    如果应该用 @objc func clocker() 歪投球 viewDidAppear