CALayer s'anime avec le changement de cadre?

J'ai un CALayer que j'ai ajouté à ma vue:

myView.myCALayer = [[CALayer alloc] init]; CGSize size = myView.frame.size; myView.myCALayer.frame = CGRectMake(0, 0, size.width, size.height); myView.myCALayer.backgroundColor = [[UIColor blackColor] CGColor]; [myView.layer addSublayer:myView.myCALayer]; 

Lorsque je tente de modifier le cadre de CALayer après avoir modifié le cadre de myView, le redimensionnement de CALayer est animé. Je n'ai ajouté aucune animation au CALayer, donc je ne comprends pas cela. J'ai même essayé d'appeler removeAllAnimations sur le calque avant le redimensionnement et il continue d'animer le redimensionnement.

Quelqu'un sait ce qui pourrait se passer ici?

Il existe en fait une animation implicite sur la définition de certaines valeurs pour un CALayer. Vous devez désactiver les animations avant de définir un nouveau cadre.

 [CATransaction begin]; [CATransaction setValue:(id)kCFBooleanTrue forKey:kCATransactionDisableActions]; [myView.myCALayer.frame = (CGRect){ { 10, 10 }, { 100, 100 } ]; [CATransaction commit]; 

https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/CoreAnimation_guide/AdvancedAnimationTricks/AdvancedAnimationTricks.html#//apple_ref/doc/uid/TP40004514-CH8-SW3