我正在尝试学习如何编写代码并开发我的第一个应用程序。这是一个健身房应用程序。我想要一个定时器和一个标签在按下一个按钮后改变。
这是我的代码直到现在,但我不知道如何显示下一个标签和下一个定时器倒计时后,按下按钮。

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 = ...

10-07 19:56
查看更多