Я делаю приложение в swift 2, где есть два таймера. Через 10 секунд я хотел бы, чтобы еще один таймер пошел быстрее. Я пытался делать это так, но это не работает (я пытаюсь изменить вар time
к 1):Как изменить NSTimeInterval NSTimer через X секунд?
@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
, через десять секунд он будет печатать 1 вместо 2, но он будет повторяться каждые две секунды. Пожалуйста помоги. Чтобы быть ясным, я хочу иметь возможность менять time
на 1 вместо 2 после десяти секунд. Я также не хочу отменять таймеры. Таймеры также находятся на repeat = true
. Спасибо заранее ... Антон
Откуда Вы знаете 'time = 1' не работает? Что должно быть, это не так? –
@ Умная ошибка Код в таймере func не повторяется каждые 1 секунду, а вместо этого каждые две секунды. –
@ Умная ошибка Если я напишу печать (время) в таймере func, через десять секунд она выведет 1 вместо 2, но будет повторяться каждые две секунды. –