J'ai toujours travaillé avec Flash, et il est assez facile de changer les valeurs alpha d'une image à l'autre. Existe-t-il un moyen de le faire dans xcode 4? J'anime un logo et j'ai besoin que le premier png disparaisse tandis que le second commence à apparaître. tnx!
Alternativement à la méthode d'esqew (qui est disponible avant iOS 4, vous devriez donc probablement l'utiliser à la place si vous ne prévoyez pas de limiter votre travail à seulement iOS 4), il y a aussi [UIView animateWithDuration:animations:]
, qui vous permet de faire l'animation dans un bloc. Par exemple:
[UIView animateWithDuration:3.0 animations:^(void) {
image1.alpha = 0;
image2.alpha = 1;
}];
Assez simple, mais encore une fois, cela n'est disponible que sur iOS 4, alors gardez cela à l'esprit.
Autre solution, fondu en entrée et en sortie:
//Disappear
[UIView animateWithDuration:1.0 animations:^(void) {
SplashImage.alpha = 1;
SplashImage.alpha = 0;
}
completion:^(BOOL finished){
//Appear
[UIView animateWithDuration:1.0 animations:^(void) {
[SplashImage setImage:[UIImage imageNamed:sImageName]];
SplashImage.alpha = 0;
SplashImage.alpha = 1;
}];
}];
C'est assez simple en fait. Placez le code suivant à l'endroit où vous souhaitez que l'animation se produise:
[UIView beginAnimations:NULL context:NULL];
[UIView setAnimationDuration:3.0]; // you can set this to whatever you like
/* put animations to be executed here, for example: */
[image1 setAlpha:0];
[image2 setAlpha:1];
/* end animations to be executed */
[UIView commitAnimations]; // execute the animations listed above
Vous pouvez en savoir plus sur ces méthodes dans ce document .
Si vous souhaitez travailler avec une structure à laquelle vous avez fait référence dans votre commentaire sur cette question:
[UIView beginAnimations:NULL context:NULL];
[UIView setAnimationDuration:3.0]; // you can set this to whatever you like
/* put animations to be executed here, for example: */
[[introAnimation objectAtIndex:0] setAlpha:0];
[[introAnimation objectAtIndex:1] setAlpha:1];
/* end animations to be executed */
[UIView commitAnimations]; // execute the animations listed above
... devrait marcher.