1 votes

iPhone : transition de vues avec Core Animation

Sur Mac, la meilleure façon d'obtenir une simple transition de vues en fondu enchaîné (sans synchronisation personnalisée des images clés) est de faire quelque chose comme l'extrait suivant :

[[self animator] replaceSubview:aView with:bView];

Malheureusement, la propriété de l'animateur n'est pas disponible sur l'iPhone. Quelle est la meilleure façon de faire cela sur l'iPhone ? Faut-il définir des canaux alpha sur chaque vue ? Un exemple de code serait excellent.

Merci.

0voto

paulthenerd Points 6568

La méthode de base pour animer des vues sur l'iphone consiste à utiliser les appels UIView beginAnimations et commitAnimations. Ils vous permettent de modifier les propriétés animables d'une vue et d'animer ces changements.

Par exemple, j'ai une vue personnalisée qui est cachée et affichée en utilisant cette approche :

- (void) showAView:(CustomAView *)aView
{
  [UIView beginAnimations:nil context:nil];
  [UIView setAnimationDuration:0.5];    
  aView.frame = CGRectMake(0.0f, 110.0f , aView.frame.size.width, aView.frame.size.height);
  [UIView commitAnimations];  
}

- (void) hideAView:(CustomAView *)aView
{
  [UIView beginAnimations:nil context:nil];
  [UIView setAnimationDuration:0.5];  
  aView.frame = CGRectMake(0.0f, self.view.frame.size.height, aView.frame.size.width, aView.frame.size.height);    
  [UIView commitAnimations];
}

En enveloppant le changement de propriété de l'image dans les UIView beginAnimations/commitAnimations, une animation standard est appliquée au changement.

Vous pouvez ajouter des propriétés supplémentaires à l'animation en utilisant les méthodes de la classe d'animation UIView, par exemple.

[UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:self.view cache:YES];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];

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