Was gilt als bewährte Methode zum Animieren von Ansichtsübergängen auf dem iPhone?
Das Beispielprojekt ViewTransitions
von Apple verwendet beispielsweise Code wie:
CATransition *applicationLoadViewIn = [CATransition animation];
[applicationLoadViewIn setDuration:1];
[applicationLoadViewIn setType:kCATransitionReveal];
[applicationLoadViewIn setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]];
[[myview layer] addAnimation:applicationLoadViewIn forKey:kCATransitionReveal];
Es gibt aber auch Code-Schnipsel im Netz, die so aussehen:
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.75];
[UIView setAnimationDelegate:self];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:myview cache:YES];
[myview removeFromSuperview];
[UIView commitAnimations];
Was ist der beste Ansatz? Wenn Sie auch einen Ausschnitt bereitstellen könnten, wäre dies sehr dankbar.
HINWEIS: Ich konnte den zweiten Ansatz nicht richtig ausführen.
iphone
ios
cocoa-touch
uiview
core-animation
Keith Fitzgerald
quelle
quelle
UIView
stattdessen die blockbasierten Animationen zu verwenden. Sie sind im Wesentlichen die gleichen wiebeginAnimations
und Freunde, verwenden jedoch Block- / Verschlussfunktionen.[UIView transitionWithView:mysuperview duration:0.75 options:UIViewAnimationTransitionFlipFromRight animations:^{ [myview removeFromSuperview]; } completion:nil]
Blockanimation aus: Weitere Informationen finden Sie in der UIView-Dokumentation.Letzteres habe ich für viele schöne leichte Animationen verwendet. Sie können damit zwei Ansichten überblenden oder eine vor der anderen einblenden oder ausblenden. Sie können eine Ansicht über eine andere wie ein Banner schießen, Sie können eine Ansicht strecken oder verkleinern ... Ich bekomme eine Menge Kilometer aus
beginAnimation
/commitAnimations
.Denken Sie nicht, dass Sie nur Folgendes tun können:
Hier ist ein Beispiel:
Wie Sie sehen können, können Sie mit Alpha, Frames und sogar Größen einer Ansicht spielen. Herumspielen. Sie können mit seinen Fähigkeiten überrascht sein.
quelle
Der Unterschied scheint darin zu liegen, wie viel Kontrolle Sie über die Animation benötigen.
Der
CATransition
Ansatz gibt Ihnen mehr Kontrolle und damit mehr Dinge einzurichten, z. die Timing-Funktion. Als Objekt können Sie es für später speichern, umgestalten, um alle Ihre Animationen darauf zu richten, um doppelten Code zu reduzieren usw.Die
UIView
Klassenmethoden sind praktische Methoden für gängige Animationen, jedoch eingeschränkter alsCATransition
. Zum Beispiel gibt es nur vier mögliche Übergangstypen (nach links drehen, nach rechts drehen, nach oben rollen, nach unten rollen). Wenn Sie ein Einblenden durchführen möchten, müssen Sie entweder nach unten graben, um denCATransition's
Übergang auszublenden, oder eine explizite Animation IhresUIView
Alphas einrichten .Beachten Sie, dass Sie
CATransition
unter Mac OS X einen beliebigenCoreImage
Filter angeben können , der als Übergang verwendet werden soll. Derzeit können Sie dies jedoch nicht auf dem fehlenden iPhone tunCoreImage
.quelle
Mit diesem einfachen Code können wir Bilder in iOS 5 animieren.
quelle
UIView
Lesen Sie in den Dokumenten diese Funktion für ios4 +quelle
Jedenfalls wird die "Block" -Methode heutzutage bevorzugt. Ich werde den einfachen Block unten erklären.
Betrachten Sie die unten geschnippten. Bug2 und Bug 3 sind ImageViews. Die folgende Animation beschreibt eine Animation mit einer Dauer von 1 Sekunde nach einer Verzögerung von 1 Sekunde. Der Bug3 wird von seiner Mitte in die Mitte von Bug2 verschoben. Sobald die Animation abgeschlossen ist, wird sie als "Center Animation Done!" Protokolliert.
Hoffe das ist sauber !!!
quelle
Hier ist Code für reibungslose Animation, könnte für viele Entwickler hilfreich sein.
Ich habe diesen Codeausschnitt aus diesem Tutorial gefunden.
quelle
Lassen Sie uns versuchen, für Swift 3 auszuchecken ...
quelle