Skip to main content
LanguageDeutsch
Maschinenbau5 Minuten gelesenOktober 2026

Wie funktionieren Frühlingsanimationen in SwiftUI?

Kurze Antwort

In SwiftUI fügen Sie eine Feder mit .animation(.spring) oder withAnimation(.spring) hinzu. Seit iOS 17 sind die Haupteinstellungen Dauer und Sprungkraft, außerdem gibt es Voreinstellungen: .smooth (kein Sprung), .snappy (ein wenig) und .bouncy (mehr). Älterer Code verwendet Antwort und Dämpfungsfraktion. SwiftUI-Federn behalten ihre Geschwindigkeit bei, wenn eine neue Animation sie unterbricht, wodurch sich Gesten natürlich anfühlen.

Kernaussage

  • Verwenden Sie withAnimation(.spring) für Zustandsänderungen oder .animation(.spring, value:) für eine Ansicht
  • iOS 17+: .spring(duration:bounce:) plus .smooth-, .snappy- und .bouncy-Voreinstellungen
  • Ältere API: .spring(response:dampingFraction:blendDuration:)
  • Federn sind seit iOS 17 der Standardanimationsstil von SwiftUI
  • Unterbrochene Federn behalten ihre Geschwindigkeit bei, sodass Gesten reibungslos ablaufen

SwiftUI animiert Zustandsänderungen. Wenn sich ein Wert wie isExpanded innerhalb von withAnimation(.spring) ändert, wird jede davon abhängige Ansicht mithilfe einer Feder in ihr neues Layout verschoben.

In iOS 17 und höher lässt sich eine Feder am einfachsten mit zwei Werten beschreiben: Dauer, ungefähr wie lange es dauert, sich zu stabilisieren, und Sprungkraft, wie stark sie überschwingt. Ein Sprungwert von 0 sorgt für eine gleichmäßige Bewegung ohne Überschwingen; Höhere Werte erhöhen die Sprungkraft. Apple bietet auch Voreinstellungen: .smooth, .snappy und .bouncy.

Älterer Code verwendet .spring(response:dampingFraction:). Die Reaktion ähnelt der Dauer, und ein Dämpfungsanteil von 1 bedeutet keinen Sprung, während niedrigere Werte den Sprung verstärken. Beide Formen beschreiben die gleiche physikalische Feder.

Der große Vorteil von Federn ist die Unterbrechung. Wenn ein Benutzer erneut tippt oder eine Ziehgeste mitten in der Animation endet, beginnt die neue Feder an der aktuellen Position und Geschwindigkeit, sodass kein Sprung erfolgt. Übergeben Sie bei Ziehgesten die Geschwindigkeit der Geste, wenn der Benutzer sie loslässt, damit das Element in die Richtung weiterläuft, in die es geworfen wurde.

Wenn dieselbe Komponente auch im Web oder auf Android ausgeführt werden muss, hilft es, Federwerte als gemeinsame Bewegungstoken beizubehalten. ExodeUI, das wir herstellen, verfügt über eine SwiftUI-Laufzeit, sodass eine entworfene Komponente mit ihren Federn in SwiftUI und auf anderen Plattformen spielen kann.

Häufige Fragen

Was ist die Standardanimation in SwiftUI?

Seit iOS 17 ist die Standardanimation ein sanfter Sprung.

Was ist der Unterschied zwischen .snappy und .bouncy?

.snappy beruhigt sich schnell mit einem kleinen Überschwingen; .bouncy schießt mehr über das Ziel hinaus. .smooth hat kein Überschwingen.

Wie konvertiere ich Response und DampingFraction in Duration und Bounce?

Die Reaktion entspricht ungefähr der Dauer. Ein Dämpfungsanteil von 1 ist Bounce 0; Niedrigere Dämpfungsanteile bedeuten mehr Sprungkraft.

Wie füge ich Geschwindigkeit durch eine Ziehgeste hinzu?

Lesen Sie die Geschwindigkeit ab, wenn der Widerstand endet, und verwenden Sie eine interpolierende Feder oder die neueren Feder-APIs, die eine Anfangsgeschwindigkeit akzeptieren.

Verwandte Guides und Beispiele

Stimmen Sie eine Feder ab, bevor Sie Code schreiben

Ziehen Sie die Schieberegler, beobachten Sie die Bewegung und kopieren Sie die Federwerte für SwiftUI, CSS und andere Plattformen.

Öffnen Sie den Federgenerator
ExodeUI

EXODEUI DESKTOP

A little space for good ideas.

Choose your platform to get the official ExodeUI installer.

Looking for Intel Mac or other builds? Explore the web studio or check all download options.

Prefer the browser? Try for free in your browser →