0Pricing
Swift Academy · Lektion

Implizite und explizite Animationen

Animieren Sie Layer-Eigenschaften mit CABasicAnimation.

Implizite und explizite Animationen ist eine kostenlose Swift Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Swift Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.

Zwei Möglichkeiten, Layer zu animieren

Core Animation bietet implizite Animationen, die bei einer Eigenschaftsänderung automatisch ausgeführt werden, und explizite Animationen, bei denen Sie ein Animationsobjekt erstellen.

Für flüssige Bewegungen ist es entscheidend, beide Varianten und ihr Zusammenspiel zu verstehen.

Implizite Animationen

Das Ändern einer animierbaren Eigenschaft eines eigenständigen Layers löst eine implizite Animation mit einer standardmäßigen Kurve von 0,25 s aus. Dafür ist kein Animationsobjekt erforderlich.

let layer = CALayer()
// Later, this animates automatically:
layer.opacity = 0.0

Animierbare Eigenschaften

Viele Layer-Eigenschaften sind animierbar: opacity, position, bounds, backgroundColor, transform, cornerRadius und weitere.

layer.cornerRadius = 20 // animates implicitly
layer.backgroundColor = UIColor.systemGreen.cgColor

Actions und der Action-Mechanismus

Implizite Animationen werden durch Actions gesteuert. Wenn sich eine Eigenschaft ändert, sucht der Layer nach einer auszuführenden CAAction. Sie können diese Actions anpassen oder deaktivieren.

View-gebundene Layer deaktivieren implizite Animationen

Layer, die an eine UIView gebunden sind, haben implizite Animationen deaktiviert. Sie animieren diese stattdessen mit UIView.animate oder mit expliziten Animationen.

UIView.animate(withDuration: 0.3) {
    view.alpha = 0
}

CABasicAnimation

CABasicAnimation animiert eine Eigenschaft zwischen einem fromValue und einem toValue. Fügen Sie die Animation mit einem Key Path hinzu, der der Eigenschaft entspricht.

let anim = CABasicAnimation(keyPath: "opacity")
anim.fromValue = 1.0
anim.toValue = 0.0
anim.duration = 0.5
layer.add(anim, forKey: "fade")

Darstellung und Modell

Eine explizite Animation ändert nur die Darstellungswerte auf dem Bildschirm. Der Modellwert des Layers springt zurück, wenn die Animation endet.

Damit die Änderung bestehen bleibt, müssen Sie auch den Modellwert setzen.

layer.opacity = 0.0 // set model value so it persists
layer.add(anim, forKey: "fade")

Keyframe-Animationen

CAKeyframeAnimation animiert über mehrere values hinweg, die durch keyTimes festgelegt werden, oder entlang eines path. Das ist ideal für Sprünge oder Bewegungen entlang von Kurven.

let move = CAKeyframeAnimation(keyPath: "position")
move.values = [
    NSValue(cgPoint: CGPoint(x: 0, y: 0)),
    NSValue(cgPoint: CGPoint(x: 100, y: 0)),
    NSValue(cgPoint: CGPoint(x: 100, y: 100))
]
move.duration = 1.0
layer.add(move, forKey: "path")

Timing-Funktionen

Steuern Sie die Beschleunigung mit timingFunction: ease-in, ease-out, linear oder eine benutzerdefinierte kubische Bézierkurve.

anim.timingFunction = CAMediaTimingFunction(name: .easeInEaseOut)

Gruppierung und Transaktionen

Schließen Sie mehrere Änderungen in eine CATransaction ein, um Dauer und Timing gemeinsam zu verwenden oder implizite Animationen vollständig zu deaktivieren.

CATransaction.begin()
CATransaction.setDisableActions(true)
layer.position = CGPoint(x: 200, y: 200)
CATransaction.commit()

Animationsdelegierte und Abschluss

Setzen Sie CATransaction.setCompletionBlock oder ein Animationsdelegate, um nach Abschluss der Bewegung Code auszuführen, etwa für Aufräumarbeiten, Verkettungen oder State-Aktualisierungen.

CATransaction.begin()
CATransaction.setCompletionBlock { print("done") }
layer.add(anim, forKey: "fade")
CATransaction.commit()

Schnelltest: Animationen

Testen Sie Ihr Verständnis von impliziten und expliziten Animationen.

Zusammenfassung: Implizite und explizite Animationen

Eigenständige Layer werden bei Änderungen animierbarer Eigenschaften implizit über Actions animiert. Von Views unterstützte Layer deaktivieren dieses Verhalten und verwenden UIView.animate. Explizite Animationen mit CABasicAnimation und CAKeyframeAnimation animieren den Darstellungswert. Aktualisieren Sie daher auch den Modellwert, damit die Ergebnisse erhalten bleiben.

Stimmen Sie Bewegungen mit Timing-Funktionen ab, bündeln Sie Änderungen in CATransaction und verwenden Sie Abschlussblöcke für nachfolgende Aufgaben.

Häufig gestellte Fragen

Ist die Lektion „Implizite und explizite Animationen“ kostenlos?

Ja — der vollständige Text von „Implizite und explizite Animationen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Swift Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Implizite und explizite Animationen“?

Animieren Sie Layer-Eigenschaften mit CABasicAnimation. Du übst Swift Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Swift Academy zu starten?

Keine Vorkenntnisse erforderlich. Swift Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.

Wie lange dauert die Lektion „Implizite und explizite Animationen“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Swift Academy-Lektion Code schreiben und ausführen?

Ja. Jede Swift Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Grundlagen von CALayer
  2. Implizite und explizite Animationen
  3. Transformationen und 3D-Effekte
  4. Benutzerdefiniertes Zeichnen mit Core Graphics
← Zurück zu Swift Academy