У меня есть NSTimer
, настроенный в UICollectionViewCell
. Он работает нормально, за исключением того, что он продолжается даже после того, как я изменил представление через segue. Как мне его остановить? Одно из решений, которое пришло в голову, - NSNotificationCenter
. Есть ли способ лучше? Большое спасибо!Остановить NSTimer в UICollectionViewCell после выхода из вида
ответ
Я не уверен, но когда вы укажете свой таймер, например: let myTimer:NSTimer = ...
, то вы можете сделать в функции prepareForSegue
: myTimer.invalidate()
Эта функция останавливает таймер. Так положить все таймеры в var myArray = [NSTimer]()
, а затем в prepareForSegue:
for timer in myArray {
timer.invalidate()
}
Как о создании метода для признания недействительным таймера для клетки и в viewWillDisappear()
вызова, метод для всех видимых ячеек
let cells = self.tableView.visibleCells();
for cell in cells {
// call invalidate
}
Это тоже хорошая идея. Но я думаю, что таймер не останавливается на скрытых ячейках ... Он даже не останавливается, если я переключусь на другой контроллер. –
Я проверю и сообщите, если он работает –
Как правило, вы должны аннулировать предыдущий таймер в prepareForReuse() вашей ячейки и выполнять некоторую логику, чтобы сохранить текущее время работы каждой ячейки (например, временную метку), а затем продолжить таймер, когда он показывает снова из (время сохранения + время истекает с отметки времени сохранения) (при прокрутке назад) – SaintTail
- 1. Остановить NSTimer при выходе из вида
- 2. Остановить SKSpriteNode от выхода из вида (Swift)
- 3. Остановить процесс после выхода
- 4. Остановить NSTimer в UIPopover
- 5. Стоп NSTimer с другого вида?
- 6. Невозможно остановить NSTimer
- 7. Остановить немедленно NSTimer
- 8. IOS: остановить NSTimer
- 9. Как остановить NSTimer?
- 10. Как остановить NSTimer?
- 11. Извлечение контроллера вида из памяти после выхода из системы?
- 12. Как остановить NSTimer с другим NSTimer?
- 13. Остановить уже запланированный nstimer
- 14. Как остановить событие NStimer?
- 15. Как остановить NSTimer
- 16. Невозможно остановить NSTimer
- 17. Как остановить NSTimer
- 18. не может остановить NSTimer
- 19. Как остановить/аннулированию NSTimer
- 20. После выхода из вида таблицы поиска UISearchDisplayController экран мигает
- 21. Создание заголовка, который фиксируется после выхода из вида?
- 22. кнопка Ember радио никогда не сбрасываются после выхода из вида
- 23. Как остановить фоновые службы после выхода из системы?
- 24. Обновления UICollectionViewCell только после прокрутки
- 25. Остановить и удалить SKScene из вида
- 26. Как остановить NSTimer в определенной точке?
- 27. Как остановить мой UICollectionViewCell встряхивания после длительного давления?
- 28. выхода более ограниченные результатов из запроса вида
- 29. Остановить приложение от выхода
- 30. UICollectionViewCell размер относительно его коллекции-вида
Я создаю таймер для каждого 'UICollectionViewCell', поэтому он находится в прикрепленном классе. Это неправильно? –
Итак, для чего нужен таймер? Но вы также можете поместить все таймеры в массив и затем остановить все их в пределах цикла. Я обновлю свой ответ за вас – borchero
Это для повторения анимации и выполнения некоторых вычислений. Эти расчеты специфичны для ячейки. Поэтому каждый должен иметь таймер. Я могу попытаться использовать один таймер в контроллере и аннулировать его в 'viewWillDisappear' или попробовать вашу версию недействительности. Благодаря! –