J'ai un sous-classe UIView
composé de plusieurs couches (principalement CAShapeLayers
avec quelques CATextLayers
). Le problème que j'ai est que si j'Animer le redimensionnement de la UIView
à l'aide d'un bloc d'animation (beginAnimations
, commitAnimations
) et Restructurer les sous-couches dans le layoutSubviews
substituée, alors les couches ne sont pas animées avec le UIView
.Animation de UIView et de ses sous-couches
Ci-dessous mon code pour animer le cadre du UIView
:
miniView.backgroundColor = [UIColor orangeColor];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.0f];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationRepeatCount:MAXFLOAT];
[UIView setAnimationRepeatAutoreverses:YES];
miniView.frame = newFrame;
[UIView commitAnimations];
Le problème est que la vue est bien animé, mais les sous-couches ne sont pas. Je peux voir la vue croître et rétrécir, mais les sous-couches se développent immédiatement et ensuite rester la nouvelle taille plus grande. Quelle est la meilleure façon de redimensionner les sous-couches d'une vue lorsque la vue est redimensionnée? Et comment puis-je faire en sorte que ceux-ci s'animent de la même manière avec la vue parente?
Avez-vous déjà trouvé une réponse? J'ai le même problème que toi Noé. La solution fournie par Brandon est légèrement différente car il suffit de mettre à l'échelle les sous-couches dans le cadre de la couche au lieu de les redessiner à leur nouvelle taille pendant l'animation. –