Помогите мне. Я попытался сделать NSTimer с UIScrollView. но NSTimer stop во время прокрутки по просмотру UIScroll.(Swift) NSTimer Стоп при прокрутке
Как сохранить работу NSTimer во время прокрутки?
Помогите мне. Я попытался сделать NSTimer с UIScrollView. но NSTimer stop во время прокрутки по просмотру UIScroll.(Swift) NSTimer Стоп при прокрутке
Как сохранить работу NSTimer во время прокрутки?
Я создал простой проект с scrollView и меткой, обновленной с помощью NSTimer
. При создании таймера с scheduledTimerWithInterval
таймер не запускается при прокрутке.
Решение создать таймер с NSTimer:timeInterval:target:selector:userInfo:repeats
, а затем вызвать addTimer
на NSRunLoop.mainRunLoop()
с mode
NSRunLoopCommonModes
. Это позволяет таймеру обновляться во время прокрутки.
Здесь работает:
Вот мой демо-код:
class ViewController: UIViewController {
@IBOutlet weak var timerLabel: UILabel!
var count = 0
override func viewDidLoad() {
super.viewDidLoad()
timerLabel.text = "0"
// This doesn't work when scrolling
// let timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: "update", userInfo: nil, repeats: true)
// Do these two lines instead:
let timer = NSTimer(timeInterval: 1, target: self, selector: "update", userInfo: nil, repeats: true)
NSRunLoop.mainRunLoop().addTimer(timer, forMode: NSRunLoopCommonModes)
}
func update() {
count += 1
timerLabel.text = "\(count)"
}
}
let timer = Timer(timeInterval: 1, target: self, selector: #selector(update), userInfo: nil, repeats: true)
RunLoop.main.add(timer, forMode: RunLoopMode.commonModes)
я использовал этот код-> // pushButtonCountTimer = NSTimer.scheduledTimerWithTimeInterval (1, target: self, selector: ("push ButtonThreeMinuete "), userInfo: nil, repeat: true) pushButtonCountRunning = true // Я изменяю этот код, как ваш код, как это -> pushButtonCountTimer = NSTimer (timeInterval: 1, target: self, selector:" pushButtonThreeMinuete ", userInfo: nil , повторяет: true) // но не работает таймер. Я начинаю программировать ... это очень сложно .. (в любом случае очень спасибо mr.Vacawama – Kyu
Вам также нужно сделать следующее: 'if let timer = pushButtonCountTimer {NSRunLoop.mainRunLoop(). addTimer (timer, forMode: NSRunLoopCommonModes)} ', чтобы таймер работал. – vacawama
Я ввел этот код, но .. я вижу красное сообщение об ошибке-> инициализатор для условной привязки должен иметь необязательный тип, а не «NSTimer» .. что это сообщение ..; -> – Kyu