[英]Stop watch working fine only first time in Swift
I made a stopwatch in swift. 我迅速制作了秒表。 It has three buttons- play, stop, reset. 它具有三个按钮-播放,停止,重置。 it has a display in the middle where I display the seconds passed. 它的中间有个显示屏,显示经过的秒数。
My code runs fine. 我的代码运行良好。 But the watch runs very fast after the stop or reset. 但是手表在停止或重置后运行非常快。
I am not able to figure out what is the fuss. 我无法弄清楚有什么大惊小怪。
please help! 请帮忙!
var time = 0
var timer = NSTimer()
var pause = Bool(false)
@IBOutlet var result: UILabel!
func displayResult() {
if pause != true
{
time++
result.text = String(time)
}
}
@IBAction func reset(sender: AnyObject) {
time = 0
result.text = String(time)
}
@IBAction func pause(sender: AnyObject) {
pause = true
}
@IBAction func play(sender: AnyObject) {
pause = false
timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("displayResult") , userInfo: nil, repeats: true)
}
Your pause
action should be: 您的pause
动作应为:
@IBAction func pause(sender: AnyObject) {
timer.invalidate()
pause = true
}
UPD: UPD:
var time = 0
var timer = NSTimer()
var pause = true // 1
func displayResult() {
if pause != true
{
time++
label.text = String(time)
}
}
@IBAction func reset(sender: AnyObject) {
time = 0
label.text = String(time)
timer.invalidate() // 2
pause = true // 3
}
@IBAction func pause(sender: AnyObject) {
timer.invalidate() // 4
pause = true
}
@IBAction func play(sender: AnyObject) {
// 5
if pause == true {
timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("displayResult") , userInfo: nil, repeats: true)
pause = false
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.