Skip to main content
LanguageSlovenčina
Strojárstvo5 min čítanieoktóber 2026

Ako fungujú jarné animácie v SwiftUI?

Stručná odpoveď

V SwiftUI pridáte pružinu s .animation(.spring) alebo withAnimation(.spring). Od iOS 17 sú hlavnými nastaveniami trvanie a odraz a existujú prednastavenia: .smooth (bez odrazu), .snappy (trochu) a .bouncy (viac). Starší kód používa odozvu a dampingFraction. Pružiny SwiftUI si zachovávajú svoju rýchlosť, keď ich preruší nová animácia, vďaka čomu sú gestá prirodzené.

Core Takeaway

  • Použite withAnimation(.spring) na zmeny stavu alebo .animation(.jar, value:) v zobrazení
  • iOS 17+: .spring(duration:bounce:) plus prednastavenia .smooth, .snappy a .bouncy
  • Staršie API: .spring(response:dampingFraction:blendDuration:)
  • Pružiny sú predvoleným štýlom animácie SwiftUI od iOS 17
  • Prerušované pružiny si zachovávajú svoju rýchlosť, takže gestá sa pohybujú hladko

SwiftUI animuje zmeny stavu. Keď sa hodnota ako isExpanded vo vnútri zmení pomocou Animation(.spring), každý pohľad, ktorý na nej závisí, sa presunie do nového rozloženia pomocou pružiny.

V systéme iOS 17 a novších verziách je najjednoduchší spôsob, ako opísať pružinu pomocou dvoch hodnôt: trvanie, približne ako dlho trvá, kým sa usadí, a odraz, koľko prekmitne. Odskok 0 poskytuje plynulý pohyb bez prekmitu; vyššie hodnoty pridávajú odraz. Apple tiež poskytuje predvoľby: .smooth, .snappy a .bouncy.

Starší kód používa .spring(response:dampingFraction:). Odozva je podobná trvaniu a tlmiaci zlomok 1 znamená žiadny odraz, zatiaľ čo nižšie hodnoty pridávajú odraz. Obe formy opisujú rovnakú fyzickú pružinu.

Veľkou výhodou pružín je prerušenie. Ak používateľ znova klepne alebo gesto ťahania skončí uprostred animácie, nová pružina začne od aktuálnej polohy a rýchlosti, takže nedochádza k žiadnemu skoku. Pri gestách ťahania prejdite rýchlosťou gesta, keď ho používateľ uvoľní, aby prvok pokračoval v smere, v ktorom bol vyhodený.

Ak rovnaký komponent potrebuje bežať aj na webe alebo v systéme Android, pomôže vám zachovanie jarných hodnôt ako zdieľaných tokenov pohybu. ExodeUI, ktorý vyrábame, má runtime SwiftUI, takže jeden navrhnutý komponent so svojimi pružinami môže hrať v SwiftUI a na iných platformách.

Často kladené otázky

Aká je predvolená animácia v SwiftUI?

Od iOS 17 je predvolená animácia plynulá pružina.

Aký je rozdiel medzi .snappy a .bouncy?

.snappy sa rýchlo usadí s malým prekročením; .odskok viac prestrelí. .hladký nemá prekmit.

Ako prevediem odozvu a zlomok tlmenia na trvanie a odraz?

Odozva zhruba mapuje trvanie. Podiel tlmenia 1 je odraz 0; nižšie frakcie tlmenia znamenajú väčší odraz.

Ako pridám rýchlosť z gesta ťahania?

Prečítajte si rýchlosť, keď sa ťah skončí, a použite interpolačnú pružinu alebo novšie API pružiny, ktoré akceptujú počiatočnú rýchlosť.

Súvisiace príručky a príklady

Pred napísaním kódu nalaďte pružinu

Potiahnite posúvače, sledujte pohyb a skopírujte hodnoty pružiny pre SwiftUI, CSS a ďalšie platformy.

Otvorte pružinový generátor
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 →