Я добавил NSTimer, который обновляет мой интерфейс, в основном, с информацией 10 раз в секунду. Он вызывает функцию, которая отправляет работу обратно в основной поток.NSTimer разрушает все мои анимации
Контроллер вида также имеет вид прокрутки. У меня есть пейджинговая система, в которой я изменяю свое представление прокрутки, перемещаясь со страницы на страницу, когда пользователь нажимает на вкладку (кнопку), которая соответствует каждой вкладке. Эта анимация прокрутки только что прекратилась - это как если бы я вызывал scrollToRect с анимацией как НЕТ, хотя я называю ее с помощью YES.
Я думаю, что, поскольку я обновляю свои ярлыки, автоматический макет делает что-то изворотливое в фоновом режиме и разрушает мои анимации прокрутки. То же самое происходит для других анимаций, которые используют ограничения компоновки для перемещения представлений.
Я знаю, что есть проблемы с Autolayout и NSTimer.
Что можно сделать, чтобы исправить это?
Благодаря
Если вы создаете подкласс вашего 'UILabel' и переопределяете' intrinsicSize', чтобы всегда возвращать постоянное значение, он может не пытаться испортить компоновку ограничений при обновлении текста. На 100% не уверен. –
Вы можете попробовать установить логическое значение перед началом анимации, и если этот параметр установлен, ваш метод таймера отсрочит обновление. В конце анимации очистите boolean и обновите данные – Paulw11
Именно это я и попытался! Переменная «блокировка таймера», которая заставляет блок таймера просто возвращать, а не обновлять интерфейс. Кажется, не имеет значения. – Vazzyb