Анимации UIView предотвращены после возврата из фона ios8 (Rubymotion)
Я пытаюсь перезапустить анимацию UIView после того, как пользователь возвращается в приложение из фона.
Вот анимация:
def animate_glow
UIView.animateWithDuration(GLOW_SPEED,
delay: 0.0,
options: UIViewAnimationOptionRepeat |
UIViewAnimationOptionAutoreverse |
UIViewAnimationOptionAllowUserInteraction,
animations: -> {
@swipe_glow.transform = CGAffineTransformMakeScale(GLOW_SCALE, GLOW_SCALE)
},
completion: nil
)
end
Слушая для UIApplicationWillEnterForegroundNotification
Я пытаюсь позвонить animate_glow
но мои анимации не перезагружаются / предотвращаются. Журналы показывают, что слушатель уведомления вызывается и что UIView.areAnimationsEnabled
возвращается true
, Я также попытался удалить представление, на которое ссылается @swipe_glow
от суперпредставления и создания нового и вызова animate_glow
Это также не влияет на фактическую анимацию (хотя новый UIView может быть создан без проблем).
Кто-нибудь может объяснить это?
1 ответ
Решение, которое я нашел, на случай, если кто-то еще найдет эту проблему:
UIViewAnimationOptionRepeat |
UIViewAnimationOptionAutoreverse |
Эти строки, по-видимому, и стали причиной проблемы, так как при возврате анимации из фона анимации устанавливались в конечную точку (GLOW SCALE
). Затем система попыталась перезапустить анимацию, но не обнаружила изменений для анимации.
Два возможных решения: прослушать UIApplicationDidEnterBackground
и в обработчике сбросьте представление, чтобы быть положением анимации назад к его источнику.
Или измените блоки анимации на анимированные и обратные методы, которые вызывают друг друга в своих completion:
блоки.
Надеюсь, это поможет кому-то!