У меня есть метод, в котором размещается группа слоев, и один «активированный» слой (в основном слой, на который нажал пользователь) одновременно позиционируется и изменяется. Все слои, включая активированный слой, являются подслоями большего слоя. Вот мой метод:
[CATransaction begin];
[CATransaction setValue:[NSNumber numberWithFloat:0.7]
forKey:kCATransactionAnimationDuration];
}];
for (CALayer *layer in self.inactiveLayers) {
... do some positioning ...
}
CGRect newFrame = activeLayer.frame;
newFrame.origin.x = 50.0;
newFrame.origin.y = 50.0;
newFrame.size.width = 100.0;
newFrame.size.height = 100.0;
activeLayer.frame = newFrame;
[CATransaction commit];
Проблема, с которой я столкнулся, действительно странная. Используя приведенный выше код, ни одна из анимаций не запускается (даже анимации для неактивных слоев). Но как только я закомментирую строки, задающие размер и ширину нового кадра, анимация снова волшебным образом начнет работать.
Есть ли причина, по которой это должно происходить?