这是我的第一篇文章,所以我希望这是一个有效的问题。我在论坛上搜索了一个没有运气的答案。以下是我的秒表应用程序代码。我遇到的问题是,当多次点击播放按钮时,它一次打勾多秒。我如何安全地阻止这种情况发生?
import UIKit
class ViewController: UIViewController {
// MARK: Properties
@IBOutlet weak var timerLabel: UILabel!
var timer = NSTimer()
var time = 0
override func viewDidLoad() {
super.viewDidLoad()
}
// MARK: Functions
func increaseTimer() {
time++
let formattedTime = String(format:"%02d:%02d", (time/60), time%60)
timerLabel.text = "\(formattedTime)"
}
// MARK: Actions
@IBAction func btnPlay(sender: AnyObject) {
timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self,
selector: Selector("increaseTimer"), userInfo: nil, repeats: true)
}
@IBAction func btnStop(sender: AnyObject) {
timer.invalidate()
}
@IBAction func btnReset(sender: AnyObject) {
timer.invalidate()
time = 0
timerLabel.text = "00:00"
}
}
编辑:SOVED http://imgur.com/mqw1Xnp
答案 0 :(得分:1)
将按钮设为开始/停止按钮。使用布尔实例变量来跟踪计时器是否正在运行。如果是,请停止它。如果不是,请启动它。
或者,将启动计时器的代码设置为button.disabled = true