单击时需要按钮更改标签
Need button to change labels when clicked
我正在尝试学习如何编码并开发我的第一个应用程序。这是一些健身应用程序。我想要一个计时器和一个标签,在按下按钮后可以更改。
到目前为止,这是我的代码,但我无法弄清楚如何在按下按钮后显示下一个标签和下一个倒计时计时器。
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]
}
`
在您的 func nextButtonTapped()
方法中,您可以包含此代码。 @IBAction 将在每次触摸按钮时触发此方法,因此如果您需要通过此操作更改变量,请简单概述您要在 {};
之间更改的内容
示例:
变种当前运动= 0
@IBAction func nextButtonTapped() {<br>
btnStart.textLabel.text = "New Text To Display"
当前运动 += 1
exerciseDescriptionLabel.text = 练习列表[当前练习]
}
您的计时器几乎在创建后立即消失,因为您在 nextButtonTapped 函数中声明了计时器 var。该功能很快完成,您的计时器在完成时消失。
要解决此问题,请在 class 级别声明计时器变量,与声明计数变量的位置相同,如下所示:
var timer: NSTimer?
将其声明为可选 (?) 允许它在点击下一个按钮之前为零。
要创建它,只需将 nextButtonTapped 中的代码行更改为以此开头:
self.timer = ...
而不是这个:
var timer = ...
我正在尝试学习如何编码并开发我的第一个应用程序。这是一些健身应用程序。我想要一个计时器和一个标签,在按下按钮后可以更改。 到目前为止,这是我的代码,但我无法弄清楚如何在按下按钮后显示下一个标签和下一个倒计时计时器。
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]
}
`
在您的 func nextButtonTapped()
方法中,您可以包含此代码。 @IBAction 将在每次触摸按钮时触发此方法,因此如果您需要通过此操作更改变量,请简单概述您要在 {};
示例:
变种当前运动= 0
@IBAction func nextButtonTapped() {<br>
btnStart.textLabel.text = "New Text To Display"
当前运动 += 1
exerciseDescriptionLabel.text = 练习列表[当前练习]
}
您的计时器几乎在创建后立即消失,因为您在 nextButtonTapped 函数中声明了计时器 var。该功能很快完成,您的计时器在完成时消失。
要解决此问题,请在 class 级别声明计时器变量,与声明计数变量的位置相同,如下所示:
var timer: NSTimer?
将其声明为可选 (?) 允许它在点击下一个按钮之前为零。
要创建它,只需将 nextButtonTapped 中的代码行更改为以此开头:
self.timer = ...
而不是这个:
var timer = ...