Quelle est la meilleure pratique pour animer les transitions de vue sur l'iPhone?
Par exemple, l' ViewTransitions
exemple de projet d'Apple utilise un code tel que:
CATransition *applicationLoadViewIn = [CATransition animation];
[applicationLoadViewIn setDuration:1];
[applicationLoadViewIn setType:kCATransitionReveal];
[applicationLoadViewIn setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]];
[[myview layer] addAnimation:applicationLoadViewIn forKey:kCATransitionReveal];
mais il y a aussi des extraits de code flottant sur le net qui ressemblent à ceci:
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.75];
[UIView setAnimationDelegate:self];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:myview cache:YES];
[myview removeFromSuperview];
[UIView commitAnimations];
Quelle est la meilleure approche? Si vous pouviez également fournir un extrait, ce serait très apprécié.
REMARQUE: je n'ai pas pu faire fonctionner correctement la deuxième approche.
iphone
ios
cocoa-touch
uiview
core-animation
Keith Fitzgerald
la source
la source
UIView
. Ils sont essentiellement les mêmes quebeginAnimations
et friends, mais utilisent des fonctionnalités de blocage / fermeture.[UIView transitionWithView:mysuperview duration:0.75 options:UIViewAnimationTransitionFlipFromRight animations:^{ [myview removeFromSuperview]; } completion:nil]
Consultez la documentation UIView pour plus de détails.J'utilise ce dernier pour beaucoup de belles animations légères. Vous pouvez l'utiliser pour faire un fondu enchaîné de deux vues, ou en fondre une devant une autre, ou en fondre. Vous pouvez prendre une vue sur une autre comme une bannière, vous pouvez étirer ou rétrécir une vue ... Je reçois beaucoup de kilomètres avec
beginAnimation
/commitAnimations
.Ne pensez pas que tout ce que vous pouvez faire est:
Voici un exemple:
Comme vous pouvez le voir, vous pouvez jouer avec l'alpha, les images et même les tailles d'une vue. S'amuser. Vous serez peut-être surpris par ses capacités.
la source
La différence semble être la quantité de contrôle dont vous avez besoin sur l'animation.
L'
CATransition
approche vous donne plus de contrôle et donc plus de choses à mettre en place, par exemple. la fonction de chronométrage. En tant qu'objet, vous pouvez le stocker pour plus tard, refactoriser pour pointer toutes vos animations dessus pour réduire le code dupliqué, etc.Les
UIView
méthodes de classe sont des méthodes pratiques pour les animations courantes, mais sont plus limitées queCATransition
. Par exemple, il n'y a que quatre types de transition possibles (retournement à gauche, retournement à droite, boucle vers le haut, boucle vers le bas). Si vous vouliez faire un fondu d'entrée, vous devrez soit creuser pourCATransition's
fondre la transition, soit mettre en place une animation explicite de votreUIView
alpha.Notez que
CATransition
sur Mac OS X vous permettra de spécifier unCoreImage
filtre arbitraire à utiliser comme transition, mais dans l'état actuel des choses, vous ne pouvez pas le faire sur l'iPhone, ce qui manqueCoreImage
.la source
Nous pouvons animer des images dans iOS 5 en utilisant ce code simple.
la source
Dans la
UIView
documentation, lisez cette fonction pour ios4 +la source
Quoi qu'il en soit, la méthode "Block" est préférée de nos jours. Je vais expliquer le bloc simple ci-dessous.
Considérez le coupé ci-dessous. bug2 et bug 3 sont des imagesViews. L'animation ci-dessous décrit une animation d'une durée de 1 seconde après un délai de 1 seconde. Le bug3 est déplacé de son centre vers le centre de bug2. Une fois l'animation terminée, elle sera enregistrée "Center Animation Done!".
J'espère que c'est propre !!!
la source
Voici le code pour une animation fluide, qui pourrait être utile pour de nombreux développeurs.
J'ai trouvé cet extrait de code de ce tutoriel.
la source
essayons de vérifier pour Swift 3 ...
la source