【发布时间】:2016-01-03 04:37:26
【问题描述】:
我正在 swift 2 中制作一个应用程序,其中有两个计时器。 10 秒后,我希望另一个计时器运行得更快。我试过这样做,但没有成功(我正在尝试将 var time 更改为 1):
@IBOutlet var displayTimeLabel: UILabel!
var startTimer = NSTimeInterval()
var timer = NSTimer()
var timer2:NSTimer = NSTimer()
var time = 2.0
@IBAction func Start(sender: UIButton) {
if !timer2.valid {
timer2 = NSTimer.scheduledTimerWithTimeInterval(0.01, target: self, selector: "updateTime", userInfo: nil, repeats: true)
startTimer = NSDate.timeIntervalSinceReferenceDate()
}
timer = NSTimer.scheduledTimerWithTimeInterval(time, target: self, selector: "timer:", userInfo: nil, repeats: true)
}
func timer(timer: NSTimer){
//code
}
func updateTime() {
if displayTimeLabel.text >= "00:10.00"{
print("00:10.00") //works
time = 1 // trying to execute code after 10 seconds(doesn't work)
}
let currentTime = NSDate.timeIntervalSinceReferenceDate()
var elapsedTime: NSTimeInterval = currentTime - startTimer
let minutes = UInt8(elapsedTime / 60.0)
elapsedTime -= (NSTimeInterval(minutes) * 60)
let seconds = UInt8(elapsedTime)
elapsedTime -= NSTimeInterval(seconds)
let fraction = UInt8(elapsedTime * 100)
let strMinutes = String(format: "%02d", minutes)
let strSeconds = String(format: "%02d", seconds)
let strFraction = String(format: "%02d", fraction)
displayTimeLabel.text = "\(strMinutes):\(strSeconds).\(strFraction)"
}
如果我在func timer 中写入 print(time),十秒后它将打印 1 而不是 2,但仍将每两秒重复一次。请帮忙。需要明确的是,我希望能够在十秒后将 time 更改为 1 而不是 2。我也不想使计时器无效。计时器也在repeat = true。在此先感谢...安东
【问题讨论】:
-
你怎么知道
time = 1不起作用?不应该发生的应该是什么? -
@聪明的错误func计时器中的代码不是每1秒重复一次,而是每两秒重复一次。
-
@ 聪明的错误如果我在 func 计时器中写入 print(time),十秒后它将打印 1 而不是 2,但它仍会每两秒重复一次。
标签: ios swift swift2 nstimer nstimeinterval