我是初学者,在Xcode 8中学习Swift 3,我正在构建一个名为" Eggtimer"的基本应用程序。代码写在下面,我不明白timerlabel.text
如何与计时器相关联,即使我没有设置它们之间的任何连接。
在明星//*
旁边,我们也可以写} else { timer.invalidate()
,labeltimer.text
很快停止减少,它会如何发生? selector
属性中的timer
是什么意思?
对不起我的英文,谢谢你的回答。
class ViewController: UIViewController {
var timer = Timer()
var time = 210
func decreasetimer() {
if time > 0 {
time -= 1
timerlabel.text = String(time)
} else { //*
timerlabel.text = String(time)
}
}
@IBOutlet var timerlabel: UILabel!
@IBAction func timerstarter(_ sender: AnyObject) {
timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(ViewController.processtimer), userInfo: nil, repeats: true)
}
}
答案 0 :(得分:2)
让我们从底部开始:selector
指定应该每1秒调用一次的方法(timeInterval
参数)。在您的情况下,应将其更改为以下内容:
timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(ViewController.decreasetimer), userInfo: nil, repeats: true)
正如您所看到的,selector
被称为decreasetimer
,这是您在顶部指定的方法。
计时器现在每次更新时都会调用此方法。在此方法中,您将减少time
var并更新timerlabel
。
timer.invalidate()
达到0时, timer
会停止time
。
我希望这能澄清你的问题。