J'ai le CATransition suivant pour un UIView appelé finalScoreView
, ce qui le fait entrer dans l'écran par le haut:
CATransition *animation = [CATransition animation];
animation.duration = 0.2;
animation.type = kCATransitionPush;
animation.subtype = kCATransitionFromBottom;
animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];
[gameOver.layer addAnimation:animation forKey:@"changeTextTransition"];
[finalScoreView.layer addAnimation:animation forKey:@"changeTextTransition"];
Comment puis-je faire en sorte qu'il rebondisse une fois après sa descente, puis reste immobile? Il devrait toujours entrer dans l'écran par le haut, mais rebondir lorsqu'il descend.
Toute aide serait très appréciée, merci!
Réponses:
Avec iOS7 et UIKit Dynamics, il n'est plus nécessaire d'utiliser
CAKeyframeAnimations
ouUIView
animations!Jetez un œil à l'application UIKit Dynamics Catalog d'Apple . Alternativement, Teehanlax a un tutoriel clair et concis avec le projet complet dans github . Si vous voulez un didacticiel plus détaillé sur les tenants et les aboutissants de la dynamique, le didacticiel Ray Winderlich est parfait . Comme toujours, les documents Apple sont un excellent premier arrêt, alors consultez la référence de la classe UIDynamicAnimator dans les documents.
Voici un peu du code du tutoriel Teenhanlax:
et voici les résultats
UIKit Dynamics est un ajout très puissant et facile à utiliser à iOS7 et vous pouvez en tirer une superbe interface utilisateur.
Autres exemples:
Les étapes pour implémenter la dynamique UIKit sont toujours les mêmes:
UIDynamicAnimator
et stockez-le dans une propriété solideUIDynamicBehaviors
. Chaque comportement doit avoir un ou plusieurs éléments, généralement une vue à animer.UIDynamicBehaviors
est un état valide dans laUIDynamicAnimator
simulation.la source
UIDynamicItemBehavior
(qui est en fait des propriétés, pas un comportement). Vous ne pouvez pas simplement utiliser différentes propriétés physiques dans différents comportements. Un autre cas est l'implémentation de limites en caoutchouc de type UIScrollView - c'est très compliqué. Je peux écrire encore plus mais le commentaire est trop court.UIDynamicAnimator
et les objets qui y sont associés, mais ne répond pas comment les utiliserUne alternative plus simple à
UIDynamicAnimator
iOS 7 est Spring Animation (une nouvelle et puissante animation de bloc UIView), qui peut vous donner un bel effet de rebond avec amortissement et vitesse: Objectif CRapide
Swift 4.0
usingSpringWithDamping
0.0 == très rebondissant. 1.0 le fait décélérer en douceur sans dépassement.initialSpringVelocity
est, à peu près, «distance souhaitée, divisée par les secondes souhaitées». 1.0 correspond à la distance totale d'animation parcourue en une seconde. Par exemple, la distance totale de l'animation est de 200 points et vous voulez que le début de l'animation corresponde à une vitesse de vue de 100 pt / s, utilisez une valeur de 0,5.Un didacticiel plus détaillé et un exemple d'application peuvent être trouvés dans ce didacticiel . J'espère que c'est utile pour quelqu'un.
la source
Voici un projet de démonstration que j'ai créé pour vous aider à obtenir une animation parfaite. Prendre plaisir!
SpringDampingDemo
la source
la source