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.