У меня есть два CALayers, каждый из которых показывает изображение.Первый (левый) слой в иерархии представлений находится поверх второго.Проблема в том, что после того, как я применил вращение вокруг оси y, правый слой внезапно нарисован выше слоя, который должен быть сверху.
Я попытался использовать разные значения zPosition.Ничего такого.Мое другое предположение состояло в том, что, возможно, анимация правого слоя заканчивается после анимации для левого слоя и, следовательно, она рисуется сверху.Чтобы проверить это, я сначала применил преобразование для правого слоя, но результат все тот же.О, я также безуспешно пробовал транзакции CA.
Вот скриншот:
Как правильно анимировать несколько CALayers, сохраняя ихзаказать?
Спасибо, Марк.РЕДАКТИРОВАТЬ:
Вот код для преобразования.Я попытался отключить анимацию, но получил тот же результат.
[CATransaction begin];
[CATransaction setValue:(id)kCFBooleanTrue
forKey:kCATransactionDisableActions];
CATransform3D rotationAndPerspectiveTransform = CATransform3DIdentity;
rotationAndPerspectiveTransform.m34 = 1.0 / 400;
rotationAndPerspectiveTransform = CATransform3DRotate(rotationAndPerspectiveTransform, DegreesToRadians(70), 0, 1, 0);
for(CALayer *layer in [self.layer sublayers]) {
// transform the two layers
layer.transform = rotationAndPerspectiveTransform;
}
[CATransaction commit];