我正在尝试学习如何编写代码并开发我的第一个应用程序。这是一个健身房应用程序。我想要一个定时器和一个标签在按下一个按钮后改变。
这是我的代码直到现在,但我不知道如何显示下一个标签和下一个定时器倒计时后,按下按钮。
class _daysday1ViewController: UIViewController {
@IBOutlet weak var exerciseNameLabel: UILabel!
@IBOutlet weak var btnStart: UIButton!
@IBOutlet weak var exercisePicture: UIImageView!
@IBOutlet weak var exerciseDescriptionLabel: UILabel!
@IBOutlet weak var timerLabel: UILabel!
@IBAction func nextButtonTapped(sender: AnyObject) {
var timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("update"), userInfo: nil, repeats: true)
count = countList[0]
}
var exerciseIndex = 0
var exerciseList = ["12 reps at 80% of capicity" , " 10 reps at 90%" , "7 to 10 reps at full capacity"]
var countList = [4 , 6 ,8]
var count = 1
override func viewDidLoad() {
super.viewDidLoad()
}
func update() {
if(count >= 0) {
timerLabel.text = String(count--)
self.btnStart.enabled = false
return
}
btnStart.enabled = true
exerciseDescriptionLabel.text = exerciseList[0]
}
`
最佳答案
您的计时器几乎一创建就将消失,因为您在nextButtonApped函数中声明了timer变量。这个功能完成得很快,当它完成时你的计时器就会消失。
若要解决此问题,请在类级别声明计时器变量,即在声明count变量的同一位置,如下所示:
var timer: NSTimer?
声明它为可选的(?)在点击下一个按钮之前允许为零。
要创建它,只需更改nextButtonApped中的代码行,如下所示:
self.timer = ...
而不是这个:
var timer = ...