Swift:3.1 UILabel文本未在计时器中更新(每秒调用)

时间:2017-04-20 14:07:53

标签: ios cocoa-touch

我创建了一个计时器对象并设置了#selector方法,在#selector方法中,每次显示计时器倒计时值时我的标签都会更新,但是当我按下或弹出另一个视图控制器并返回到计时器视图控制器时,我的标签没有更新计时器倒计时值

override func viewDidLoad() {
    super.viewDidLoad()
   if timer == nil {
    self.startTimer()
   }
}

func startTimer() {
    timer?.invalidate()
    timer = Timer.scheduledTimer(timeInterval:1, target: self, selector: #selector(self.update), userInfo: nil, repeats: true);
}

func update()  {

    count += 1
    if(count > 0){

        let ti = NSInteger(count)
        let strSeconds = ti % 60
        let strMinutes = (ti / 60) % 60
        let strHours = (ti / 3600)

        print("\(strHours):\(strMinutes):\(strSeconds)")
        self.lblTimer.text = String(format: "%0.2d:%0.2d:%0.2d",strHours,strMinutes,strSeconds)
    }   
}

1 个答案:

答案 0 :(得分:-1)

当您使用选择器时,尝试self.update()来实际调用该函数。也可以使用print语句检查您的变量是否确实递增。