Skip to main content
LanguageRomână
Inginerie5 minute de cititoctombrie 2026

Cum funcționează animațiile de primăvară în SwiftUI?

Răspuns scurt

În SwiftUI adăugați un arc cu .animation(.spring) sau cu Animation(.spring). Începând cu iOS 17, setările principale sunt durata și bounce, și există presetări: .smooth (fără sărituri), .snappy (puțin) și .bouncy (mai mult). Codul mai vechi folosește răspuns și dampingFraction. Arcurile SwiftUI își păstrează viteza atunci când o nouă animație le întrerupe, ceea ce face ca gesturile să pară naturale.

Core Takeaway

  • Utilizați cu Animație(.spring) pentru modificări de stare sau .animation(.spring, value:) pe o vizualizare
  • iOS 17+: .spring(duration:bounce:) plus presetări .smooth, .snappy și .bouncy
  • API mai vechi: .spring(response:dampingFraction:blendDuration:)
  • Arcurile sunt stilul de animație implicit al lui SwiftUI începând cu iOS 17
  • Arcurile întrerupte își păstrează viteza, așa că gesturile sunt transmise fără probleme

SwiftUI animă schimbările de stare. Când o valoare precum isExpanded se modifică în interiorul cu Animation(.spring), fiecare vizualizare care depinde de ea trece la noul aspect folosind un arc.

În iOS 17 și versiuni ulterioare, cel mai simplu mod de a descrie un arc este cu două valori: durată, aproximativ cât timp durează să se așeze și sări, cât de mult depășește. O săritură de 0 oferă o mișcare lină, fără depășire; valorile mai mari adaugă sărituri. Apple oferă, de asemenea, presetări: .smooth, .snappy și .bouncy.

Codul mai vechi folosește .spring(răspuns:dampingFraction:). Răspunsul este similar cu durata, iar o fracțiune de amortizare de 1 înseamnă că nu există respingere, în timp ce valorile mai mici adaugă respingere. Ambele forme descriu același izvor fizic.

Marele avantaj al arcurilor este întreruperea. Dacă un utilizator atinge din nou sau un gest de glisare se termină la mijlocul animației, noul arc pornește de la poziția și viteza curente, deci nu există niciun salt. Pentru gesturile de tragere, treceți viteza gestului atunci când utilizatorul eliberează, astfel încât elementul să continue în direcția în care a fost aruncat.

Dacă aceeași componentă trebuie să ruleze și pe web sau Android, păstrarea valorilor de primăvară ca simboluri de mișcare partajate ajută. ExodeUI, pe care îl producem, are un timp de rulare SwiftUI, astfel încât o componentă proiectată cu arcurile sale poate juca în SwiftUI și pe alte platforme.

Întrebări frecvente

Care este animația implicită în SwiftUI?

De la iOS 17, animația implicită este un primăvară lină.

Care este diferența dintre .snappy și .bouncy?

.snappy se instalează rapid cu o mică depășire; .bouncy depășește mai mult. .smooth nu are depăşire.

Cum convertesc răspunsul și dampingFraction în duration și bounce?

Răspunsul se corelează aproximativ cu durata. O fracție de amortizare de 1 este bounce 0; fracțiunile de amortizare mai mici înseamnă mai multă săritură.

Cum adaug viteza dintr-un gest de tragere?

Citiți viteza când se termină tracțiunea și utilizați un arc de interpolare sau API-uri de arc mai noi care acceptă o viteză inițială.

Ghiduri și exemple înrudite

Reglați un arc înainte de a scrie cod

Trageți glisoarele, urmăriți mișcarea și copiați valorile arcului pentru SwiftUI, CSS și alte platforme.

Deschideți generatorul cu arc
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 →