iOS SDK UIView-Animationen

Dieser iOS-Schnelltipp zeigt Ihnen, wie Sie Objekte mit UIKit mühelos animieren. Egal, ob Sie Menüs gleiten oder Affen fliegen möchten, es ist einfach, dies zu tun, und dieser Tipp zeigt Ihnen, wie das geht!

Animationen in mobilen Anwendungen können eine sehr wichtige Funktion sein. Unter einem praktischen UX-Standpunkt kann der Benutzer wissen, dass etwas geändert oder verschoben wurde. Unter einem unterhaltsamen Gesichtspunkt können Spiel-Sprites oder Kacheln über den Bildschirm verschoben werden, wodurch der Benutzer zu einem vollständig interaktiven Erlebnis wird.

Glücklicherweise ist es sehr einfach, UIView-Objekte in Ihren iOS-Apps in Bewegung zu setzen, und Sie müssen sich nicht einmal Gedanken über die Berechnung kryptischer geometrischer Gleichungen oder anderer solcher Voodoo machen!


UIView Hintergrund

Bevor wir uns mit der eigentlichen Animation beschäftigen, müssen wir mit den grundlegenden Animationseigenschaften von UIView-Objekten vertraut sein. Im Folgenden werden alle Eigenschaften von iOS 5.1 aufgelistet:

  • Mitte (Position auf dem Bildschirm)
  • Rahmen (Position auf dem Bildschirm, Größe, Dehnung…)
  • Grenzen (Größe, Dehnung)
  • Alpha (Transparenz)
  • Transformation (Rotation, Skalierung, grundsätzlich Änderungen an der UIView)
  • Hintergrundfarbe

In diesem kurzen Tipp haben wir nicht genügend Platz, um alle diese Eigenschaften durchzugehen, aber wir werden uns einige der gebräuchlichsten ansehen: center, alpha und transform.


UIViews verschieben

 [UIView animateWithDuration: (NSTimeInterval) Animationen: ^ (void) Animationen]

In der einfachsten Form ist alles, was Sie zum Animieren eines UIView benötigen. Es ist ziemlich einfach - übergeben Sie eine Dauer (wie lange die Animation dauert) und dann die Eigenschaften, die animiert werden sollen (die Werte, die die UIView-Eigenschaften am Ende der Animation haben sollen)..

Für ein schnelles Beispiel: Wenn wir eine UIView mit dem Namen "theView" haben, und wir möchten, dass sie innerhalb von 0,5 Sekunden unsichtbar wird, würden wir Folgendes nennen:

 [UIView animateWithDuration: 0.5f Animationen: ^ [theView setAlpha: 0.0f]; ];

Und wir sind fertig! Die Dauer der Animation wird durch das festgelegt animateWithDuration: Parameter, und ein Objective-C-Block mit bestimmten Animationsaktionen wird an den Animationen: Parameter. Es ist so einfach!


Aktionen nach der Animation

Oft wollen wir nach Abschluss der Animation etwas tun. Wir nehmen zum Beispiel ein Spiel. Angenommen, wir möchten einem Spieler zeigen, dass er eine Aktion erfolgreich abgeschlossen hat. Wir machen das, indem wir einen Stern in die linke Ecke des Bildschirms fliegen lassen und dann einen Punkt zu ihrer Punktzahl hinzufügen. Es gibt zwei Dinge, die wir tun möchten, wenn der Star fertig ist:

  1. Entferne den Stern vom Bildschirm (pro Punkt soll nur ein Stern sichtbar sein).
  2. Fügen Sie der Partitur einen Punkt hinzu.

Dazu rufen wir unsere Animationsmethode mit einem Vervollständigungsblock auf:

 [UIView animateWithDuration: (NSTimeInterval) Animationen: ^ (void) Animationen Abschluss: ^ (BOOL beendet) Fertigstellung];

Wenn wir beispielsweise eine UIImageView (d. H. Eine Unterklasse von UIView) mit dem Namen "starImageView" mit einem Sternbild und eine numerische Variable mit dem Namen "points" haben, würden wir Folgendes nennen:

 [UIView animateWithDuration: 0.7f-Animationen: ^ [starView setCenter: CGPointMake (0, 0)];  completion: ^ (BOOL beendet) [starView removeFromSuperView]; Punkte ++; ];

Es ist erwähnenswert, dass wir unser „StarView“ als Unteransicht unserer UIView erneut hinzufügen müssen, wenn Sie diese Animation erneut ausführen möchten. Sie können dies im Beispielcode sehen, der diesem Mobiletuts + -Tutorial als Anhang beigefügt ist.


Darüber hinausgehen

Schließlich gibt es eine Methode, mit der wir noch detaillierter unseren Animationsprozess definieren können, einschließlich einer Verzögerung, bevor die Animation ausgeführt wird, und die Art der "Beschleunigung" für unsere Animation festlegen. Diese "Beschleunigungs" -Typen können in der UIView.h-Header-Datei als Enums gefunden (und beschrieben) werden:

 typedef enum UIViewAnimationCurveEaseInOut, // langsam am Anfang und Ende UIViewAnimationCurveEaseIn, // langsam am Anfang UIViewAnimationCurveEaseOut, // langsam am Ende UIViewAnimationCurveLinear UIViewAnimationCurve;

Ich möchte Sie dazu ermutigen, mit diesen herumzuspielen, indem Sie sie in den Parameter "options" der folgenden Animationsmethode einfügen:

 [UIView animateWithDuration: (NSTimeInterval) delay: (NSTimeInterval) Optionen: (UIViewAnimationOptions) Animationen: ^ (void) Animationsabschluss: ^ (BOOL beendet) Fertigstellung];

Mit unseren vorherigen Beispielen werden wir unsere Animation nochmals um 0,1 Sekunden verzögern und dann anfangen, sie zu verschieben (zuerst langsam, dann schneller und am Ende langsam). Während wir unser Bild verschieben, blenden wir es auf 0% Deckkraft aus. Nach Abschluss der Animation fügen wir unserer Bewertung einen Punkt hinzu und entfernen das Bild aus unserer UIView.

 [UIView animateWithDuration: 0.6f delay: 0.1f Optionen: UIViewAnimationCurveEaseInOut-Animationen: ^ [starView setCenter: CGPointMake (0, 0)]; [StarView SetAlpha: 0,0f];  completion: ^ (BOOL beendet) [starView removeFromSuperview]; Punkte ++; ];

Fazit

Wie Sie sehen, ist es sehr einfach, Ihre UIViews zu animieren. Nehmen Sie sich also etwas Zeit, um mit den verschiedenen animierbaren UIView-Eigenschaften herumzuspielen und sehen Sie, welche neuen Dinge Sie entdecken können!

Verwenden Sie für zusätzliche Übung den folgenden Befehl, um Ihr Bild zu drehen:

 [starView setTransform: CGAffineTransformRotate (starView.transform, 90.0f)];

Sehen Sie jetzt, welche anderen Möglichkeiten mit Animationen für UIViews möglich sind! Denken Sie daran, es gibt mehrere Unterklassen von UIView, die mit den gleichen Methoden und Eigenschaften animiert werden können, z. B. (aber nicht beschränkt auf):

  • UIButton
  • UIImageView
  • UIButton
  • UILabel
  • UITableView
  • UIScrollView

Ressourcen

Das in diesem Lernprogramm verwendete Sternbild wurde mit einer GNU / GPL-Lizenz von FindIcons veröffentlicht