Другие вопросы, которые я видел на этом, не помогли. Я хочу, чтобы можно было начать, приостановить, а затем возобновить NSTimer. Я знаю, как запустить NSTimer. Я также знаю, что вы не можете «приостановить» NSTimer, но вы можете аннулировать его. Но что мне делать, если бы я хотел возобновить его, сохраняя то же время, что и я, когда останавливал таймер? Вот код:Возобновление NSTimer в Swift
var startTimer = NSTimeInterval()
var timer = NSTimer()
@IBOutlet var displaylabel: UILabel!
@IBAction func start(sender: UIButton) {
timer = NSTimer.scheduledTimerWithTimeInterval(0.01, target: self, selector: "updateTime", userInfo: nil, repeats: true)
startTimer = NSDate.timeIntervalSinceReferenceDate()
}
@IBAction func stop(sender: UIButton) {
timer.invalidate()
}
@IBAction func resume(sender: UIButton) {
// Code needed
}
func updateTime() {
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)
displaylabel.text = "\(strMinutes):\(strSeconds).\(strFraction)"
}
Заранее спасибо. Антон
Зачем не нравится (-1)? –
'NSTimer' не подходит для этого дизайна; это не «секундомер» (просто то, что вызывает вызов функции в указанное позднее время, необязательно повторяющееся). Вам нужно будет выполнить счетчик самостоятельно. Попробуйте найти «CADisplayLink» (ссылка на анимацию ядра). –
@NicolasMiari Спасибо ... Не могли бы вы дать мне код, если это возможно? –