Причина, по которой ваша анимация не работает в соответствии с планом, связана с тем, как вы кодировали и использовали Core Animation.Все основные анимации работают на GPU.CA infact отлично справляется с несколькими задачами для оптимальной визуализации анимации.
Одним из элементов этого является необработанная мощь параллельной обработки современных видеокарт, а другим является тот факт, что Core Animation может кэшировать содержимое CALayer накарта, так что ваш код не должен постоянно перерисовывать ее.Это, кстати, одна из причин, почему пользовательский интерфейс iPhone невероятно быстр на некотором относительно скромном оборудовании.Core Animation может автоматически использовать преимущества многоядерного Mac, потому что дерево слоев отображается в отдельном потоке .
Последняя строка - imp.Центры сертификации работают в отдельном потоке (а не в основном потоке).Итак, возвращаясь к вашей проблеме, у вас есть 2 блока CA, каждый из которых пытается анимировать один и тот же transform.translation.y
Оба одновременно!Как бы это работало?
Чтобы решить эту проблему, либо выполните -
- Что-то, что кто-то предложил, поместите задержку для второй анимации, чтобы после первой анимации, только второй пиналпосле того, как первая ОС закончилась.
- или попробуйте сделать всю анимацию в одном блоке (опять же, как кто-то предложил).
Я просто хотел выделить теорию и обоснование того, как работает Core Animation.Надеюсь, это поможет ...