#iphone #ios #core-animation
#iPhone #iOS #ядро-анимация
Вопрос:
У меня проблемы с пониманием основной анимации Apple (для iOS). Я пытаюсь анимировать position
и bounds
слоя одновременно (но с разными функциями синхронизации).
Согласно документации, CAAnimationGroup позволяет группировать и запускать одновременно несколько анимаций. Но, согласно моим (ранним) экспериментам, этого также можно достичь, добавив несколько объектов анимации на целевой слой. Если да, то какова цель этой CAAnimationGroup?
Ответ №1:
Если вы хотите анимировать два разных свойства с разными функциями синхронизации, то группирование этих анимаций в этом случае не требуется. Я думаю, что группировка полезна, когда вы создаете несколько анимаций и хотите, чтобы они имели одинаковое поведение по времени. Вы можете установить функцию синхронизации для группы. В кулинарной книге Core Animation я видел пример, который показывает, как использовать группировку при настройке временной кривой для CAKeyframeAnimation.
Комментарии:
1. 1, но я не понимаю, почему я должен группировать анимации, когда функции синхронизации одинаковы. Имеет ли значение группировка?
2. В случае group вам не нужно смотреть, имеет ли каждая из анимаций в group надлежащую функцию синхронизации или длительность, она устанавливается один раз.
3. Вот какой-то учебник. Речь идет не о самой группировке, но первый пример кода (используйте интересную анимацию) показывает группировку. И продолжительность установлена на 5 секунд для группы.
4. используйте группировку, чтобы гарантировать, что все анимации начинаются / заканчиваются одновременно, предполагая, что все анимации имеют одинаковую продолжительность, без группировки, добавляя их одну за другой в слой, анимации будут иметь разное время начала
Ответ №2:
Следующая цитата взята из книги «Анимация ядра iOS»
Добавление группы анимации к слою принципиально не отличается от добавления анимаций по отдельности, поэтому не сразу понятно, когда и почему вы будете использовать этот класс. Это обеспечивает некоторое удобство с точки зрения возможности коллективно устанавливать продолжительность анимации или добавлять и удалять несколько анимаций из слоя одной командой, но по-настоящему полезность становится очевидной только тогда, когда речь заходит об иерархическом хронометражировании, что объясняется в главе 9 .