我是初学者,所以目前我可能看不到明显的东西。所以请帮忙。当按下暂停按钮时,我需要再次启用开始按钮,反之亦然。但我无法创建一个可以由两个 UIButton 函数访问的 var 。我应该怎么办?这是我的代码的一部分:
@IBAction func Start(_ sender: AnyObject) {
let disableMyStartButton = sender as? UIButton
disableMyStartButton?.isEnabled = false
timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(ViewController.update), userInfo: nil, repeats: true)
}
@IBAction func pauseTimer(_ sender: AnyObject) {
timer.invalidate()
WarningLabel.text = "Paused"
}
最佳答案
您需要创建按钮
的Outlet
并在您的方法中使用它们。
@IBOutlet var btnStart: UIButton!
@IBOutlet var btnPause: UIButton!
@IBAction func start(_ sender: UIButton) {
sender.isEnabled = false
btnPause.isEnabled = true
timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(ViewController.update), userInfo: nil, repeats: true)
}
@IBAction func pauseTimer(_ sender: UIButton) {
sender.isEnabled = false
btnStart.isEnabled = true
timer.invalidate()
WarningLabel.text = "Paused"
}
您还可以使用像这样的按钮的单一操作来完成此操作。
@IBAction func onStartOrPause(_ sender: UIButton) {
if (sender == btnStart) {
sender.isEnabled = false
btnPause.isEnabled = true
timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(ViewController.update), userInfo: nil, repeats: true)
}
else {
sender.isEnabled = false
btnStart.isEnabled = true
timer.invalidate()
WarningLabel.text = "Paused"
}
}
注意:您还可以通过在操作中更改标题或图像来使用单个按钮来制作相同的内容。
关于ios - 快速启用/禁用开始和暂停按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40415799/