Скажем, у меня есть 3 CALayers (квадраты, разных цветов, для примера).И я хочу выполнить следующую анимацию:
layer1 одновременно переводит и масштабирует из положения A в положение B.
Как только layer1 находится в своей новой позиции и имеет новый размер, layer2 и 3 одновременнопереведите из позиций C и D в позиции E и F соответственно.Эти слои (2 и 3) также постепенно исчезают при переводе в E и F. Но слой 2 также масштабируется по мере его перевода, а layer3 просто переводит (но с CAKeyframeAnimation, так что, когда он достигает точки F, он делает небольшой эффект оживления вверх-вниз).
Для слоя 1 я могу:
- создать CABasicAnimation с единственной настройкой длительности, например, равной 1, и добавить ее в layer1для ключа "transform" создайте преобразование масштаба
- и примените его к слою
Для layer2 то же самое, что и для layer1, но также установите непрозрачность.
Для слоя 3 я бы создал анимацию ключевого кадра.А также установите непрозрачность.
Из вышеперечисленного:
Похоже на вызов layer2 setTransform: затем setOpacity: приводит к одновременной анимации.Но это правильный способ убедиться, что они одновременны, или я должен использовать что-то вроде CAAnimationGroup?
Имеет ли смысл переводить и масштабировать путем объединения матриц?Имеет ли смысл даже использовать матрицы, а не устанавливать позиции?
Как их объединить, чтобы анимация для layer2 и layer3 не начиналась, пока не будет выполнен layer1, а затем произойдет преобразование и непрозрачность layer2одновременно с анимацией ключевых кадров и прозрачности слоя 3?