如何在 Swift 中将秒计时器连接到分钟计时器?
How to connect a seconds timer to a minutes timer in Swift?
我已经为分钟和秒创建了一个 setupGame 和 subtractScore class,所以分钟和秒计时器现在都可以使用。但是,我无法弄清楚每次秒计时器变为零时如何使分钟计时器减一。本质上我已经尝试使用 if 语句(例如 if(seconds == 0) {minutes = minutes - 1}),但是没有效果。
我不会使用单独的计时器。有一个每秒触发一次的秒计时器。
听起来你想要一个倒数计时器。所以...
使用如下代码记录定时器开始的时间:
let secondsToEnd = 60*5
let startInterval = NSDate.timeIntervalSinceReferenceDate()
let endInterval = startInterval + Double(secondsToEnd)
然后在你的计时器代码中:
let remainingSeconds = Int(endInterval - NSDate.timeIntervalSinceReferenceDate())
let minutes = remainingSeconds/60
let seconds = remainingSeconds%60
根据需要显示分钟和秒值。
NSTimers 有时会在应用程序忙碌时错过触发,而定时器本应关闭,并且不是非常准确。上面的代码将始终计算 real 剩余时间,而不管您用来显示该信息的计时器以及该计时器中的任何不准确性。
我已经为分钟和秒创建了一个 setupGame 和 subtractScore class,所以分钟和秒计时器现在都可以使用。但是,我无法弄清楚每次秒计时器变为零时如何使分钟计时器减一。本质上我已经尝试使用 if 语句(例如 if(seconds == 0) {minutes = minutes - 1}),但是没有效果。
我不会使用单独的计时器。有一个每秒触发一次的秒计时器。 听起来你想要一个倒数计时器。所以...
使用如下代码记录定时器开始的时间:
let secondsToEnd = 60*5
let startInterval = NSDate.timeIntervalSinceReferenceDate()
let endInterval = startInterval + Double(secondsToEnd)
然后在你的计时器代码中:
let remainingSeconds = Int(endInterval - NSDate.timeIntervalSinceReferenceDate())
let minutes = remainingSeconds/60
let seconds = remainingSeconds%60
根据需要显示分钟和秒值。
NSTimers 有时会在应用程序忙碌时错过触发,而定时器本应关闭,并且不是非常准确。上面的代码将始终计算 real 剩余时间,而不管您用来显示该信息的计时器以及该计时器中的任何不准确性。