Бесконечная CABasicAnimation останавливается

У меня бесконечная анимация (поворот изображения, тип: CABasicAnimation) в моем UIView с помощью

animation.repeatCount = HUGE_VALF;

Когда я нажимаю новый ViewController и возвращаюсь к исходному ViewController с анимацией, содержащей View внутри, остановка вращения.

Даже если я снова настрою анимацию при вызове метода ViewController viewWillAppear, он не будет снова вращаться.

Что я делаю неправильно?

Ответы

Ответ 1

на самом деле существует простой способ решить эту проблему настройка анимации на этот

animation.removedOnCompletion = false

и сам слой не разрушается, когда NavigationController сдвигает другое представление ViewController, потому что UINavigationController получил свойство viewControllers, которое сохранит исходный viewController и, следовательно, его представление и ваш анимированный слой. Этот объект CABasicAnimation уничтожен, когда вид удален из интерфейса, даже если вы установили его repeatCount в бесконечность. Поэтому установите removedOnCompletion в false, чтобы сохранить его

Ответ 2

Когда слой удаляется с экрана, он теряет анимацию. Вы должны добавить их назад, как только слой снова появится на экране.

viewWillAppear: слишком рано, потому что к этому времени на экране не отображается ни один экран. Попробуйте добавить анимацию в viewDidAppear:.