override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
super.touchesBegan(touches, with: event)
stopPlayerTimer()
}
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?){
super.touchesEnded(touches, with: event)
startPlayerTimer()
}
func startPlayerTimer(){
if self.scrollTimer == nil {
Timer.scheduledTimer(timeInterval: 0.5, target: self, selector: #selector(timerAction), userInfo: nil, repeats: true)
self.scrollTimer?.fire()
}
}
func stopPlayerTimer(){
self.scrollTimer?.invalidate()
self.scrollTimer = nil
}
расписание , затем сработает.
self.scrollTimer = Timer.scheduledTimer(timeInterval: 0.5, target: self, selector: #selector(timerAction), userInfo: nil, repeats: true)
self.scrollTimer.fire()
Поскольку прокрутка отключила обновление вашего таймера.
Ваш таймер не находится под RunLoop.Mode.tracking
по умолчанию
добавить таймер в общий режим RunL oop, затем ок
RunLoop.current.add(timer, forMode: RunLoop.Mode.common)