Ich habe die folgende CATransition für eine aufgerufene UIView finalScoreView
, wodurch sie von oben auf den Bildschirm gelangt :
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"];
Wie mache ich es so, dass es einmal springt, nachdem es heruntergekommen ist, und dann still bleibt? Es sollte immer noch von oben in den Bildschirm eintreten, aber dann abprallen, wenn es herunterkommt.
Jede Hilfe wäre sehr dankbar, danke!
Antworten:
Mit iOS7 und UIKit Dynamics, ist es nicht mehr nötig zu verwenden
CAKeyframeAnimations
oderUIView
Animationen!Schauen Sie sich Apples UIKit Dynamics Catalog-App an . Alternativ hat Teehanlax ein klares , präzises Tutorial mit dem vollständigen Projekt in Github . Wenn Sie ein detaillierteres Tutorial über die Vor- und Nachteile der Dynamik wünschen, ist das Ray Winderlich-Tutorial großartig. Wie immer sind die Apple-Dokumente eine gute erste Anlaufstelle. Lesen Sie daher die Referenz zur UIDynamicAnimator-Klasse in den Dokumenten.
Hier ist ein Teil des Codes aus dem Teenhanlax-Tutorial:
Und hier sind die Ergebnisse
UIKit Dynamics ist eine wirklich leistungsstarke und benutzerfreundliche Ergänzung zu iOS7, mit der Sie eine gut aussehende Benutzeroberfläche erhalten.
Andere Beispiele:
Die Schritte zum Implementieren der UIKit-Dynamik sind immer dieselben:
UIDynamicAnimator
und speichern Sie es in einer starken EigenschaftUIDynamicBehaviors
. Jedes Verhalten sollte ein oder mehrere Elemente enthalten, normalerweise eine Ansicht zum Animieren.UIDynamicBehaviors
ein gültiger Zustand innerhalb derUIDynamicAnimator
Simulation ist.quelle
UIDynamicItemBehavior
(was eigentlich Eigenschaften sind, nicht Verhalten). Sie können nicht einfach unterschiedliche physikalische Eigenschaften in unterschiedlichen Verhaltensweisen verwenden. Ein anderer Fall ist die Implementierung von UIScrollView-ähnlichen Gummibändern - es ist sehr kompliziert. Ich kann noch mehr schreiben, aber der Kommentar ist zu kurz.UIDynamicAnimator
und damit verbundene Objekte, antwortet aber nicht, wie man sie verwendetEine einfachere Alternative zu
UIDynamicAnimator
iOS 7 ist Spring Animation (eine neue und leistungsstarke UIView-Blockanimation), mit der Sie einen schönen Bouncing-Effekt mit Dämpfung und Geschwindigkeit erzielen können: Ziel C.Schnell
Swift 4.0
usingSpringWithDamping
0.0 == sehr federnd. 1.0 macht es sanft abbremsen ohne zu überschießen.initialSpringVelocity
ist ungefähr "gewünschte Entfernung, geteilt durch gewünschte Sekunden". 1,0 entspricht der gesamten Animationsentfernung, die in einer Sekunde zurückgelegt wurde. Beispiel: Die gesamte Animationsentfernung beträgt 200 Punkte. Wenn der Beginn der Animation einer Ansichtsgeschwindigkeit von 100 pt / s entspricht, verwenden Sie einen Wert von 0,5.Ein ausführlicheres Tutorial und eine Beispiel-App finden Sie in diesem Tutorial . Ich hoffe das ist nützlich für jemanden.
quelle
Hier ist ein Demo-Projekt, das ich erstellt habe, um Ihnen zu helfen, die Animation genau richtig zu machen. Genießen!
SpringDampingDemo
quelle
quelle