2 votes

uiview CGAffineTransform anime à l'envers

J'ai un UIView que je suis capable d'utiliser avec succès. UIView animations sur.

Ce site UIView a également des sous-vues, que je veux également être en mesure de UIView animer.

Cependant, il semble que chaque fois que je crée une animation et que je l'applique à la vue parent, cela fonctionne bien, mais si j'applique l'animation à la vue enfant, l'animation est inversée.

Par exemple, si je mets à l'échelle mon UIView parent(self) par un facteur de 2 (pour doubler la largeur et la hauteur) :

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDelegate: self];
[UIView setAnimationDuration:2];
[UIView setAnimationDelay:2];

CGAffineTransform scaleTransform = CGAffineTransformScale( self.transform, 2, 2  );
self.transform = scaleTransform;
[UIView commitAnimations];

alors cela fonctionne bien.

Mais si je fais la même chose sur l'enfant :

UIView *myObj = [[self subviews] objectAtIndex:0];

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDelegate: self];
[UIView setAnimationDuration:2];
[UIView setAnimationDelay:2];

CGAffineTransform scaleTransform = CGAffineTransformScale( myObj.transform, 2, 2  );
myObj.transform = scaleTransform;
[UIView commitAnimations];

Cela ne fonctionne pas. Ce qui se passe visuellement, c'est que la vue enfant se rétrécit immédiatement puis, après un délai, reprend sa taille d'origine.

Si j'enregistre les paramètres de transformation, ils sont identiques pour le parent et l'enfant et j'ai essayé de définir les paramètres suivants CGAffineTransformIdentity .

Une idée de ce qui pourrait être le problème ?

0voto

ade Points 4561

Je surchargeais layoutSubviews et j'attribuais les tailles/positions des vues en fonction de l'orientation de l'appareil, ce qui entrait en conflit.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X