Skip to main content
LanguageSuomi
Tekniikka5 min lukeminenlokakuuta 2026

Miten kevätanimaatiot toimivat SwiftUI:ssä?

Lyhyt vastaus

SwiftUI:ssä lisäät jousen .animation(.spring)- tai Animation(.spring) -merkillä. iOS 17:stä lähtien pääasetukset ovat kesto ja pomppiminen, ja olemassa on esiasetuksia: .smooth (ei pomppimista), .snappy (vähän) ja .bouncy (enemmän). Vanhempi koodi käyttää vastetta ja vaimennusfraktiota. SwiftUI-jouset säilyttävät nopeudensa, kun uusi animaatio keskeyttää ne, mikä saa eleet tuntumaan luonnollisilta.

Core Takeaway

  • Käytä withAnimation(.spring) tilanmuutoksissa tai .animation(.spring, value:)-kuvauksessa
  • iOS 17+: .spring(kesto:bounce:) sekä .smooth-, .snappy- ja .bouncy-esiasetukset
  • Vanhempi API: .spring(response:dampingFraction:blendDuration:)
  • Jouset ovat SwiftUI:n oletusanimaatiotyyli iOS 17:stä lähtien
  • Keskeytetyt jouset pitävät nopeudensa, joten eleet siirtyvät sujuvasti

SwiftUI animoi tilan muutokset. Kun arvo, kuten isExpanded, muuttuu animaation(.spring) sisällä, jokainen siitä riippuvainen näkymä siirtyy uuteen asetteluun jousen avulla.

iOS 17:ssä ja uudemmissa versioissa yksinkertaisin tapa kuvata jousta on kaksi arvoa: kesto, suunnilleen kuinka kauan sen asettuminen kestää, ja pomppiminen, kuinka paljon se ylittää. Pomppu 0 antaa tasaisen liikkeen ilman ylitystä; korkeammat arvot lisäävät pomppimista. Apple tarjoaa myös esiasetuksia: .smooth, .snappy ja .bouncy.

Vanhempi koodi käyttää .spring(response:dampingFraction:). Vaste on samanlainen kuin kesto, ja vaimennusosuus 1 tarkoittaa, ettei pomppimista ole, kun taas pienemmät arvot lisäävät pomppimista. Molemmat muodot kuvaavat samaa fyysistä jousta.

Jousien suuri etu on keskeytys. Jos käyttäjä napauttaa uudelleen tai vetämisele päättyy animaation puolivälissä, uusi jousi alkaa nykyisestä sijainnista ja nopeudesta, joten hyppyä ei tapahdu. Vetoeleissä ohita eleen nopeus, kun käyttäjä päästää irti, jotta elementti jatkaa heittämissuuntaan.

Jos saman komponentin on toimittava myös verkossa tai Androidissa, jousiarvojen säilyttäminen jaetuina liiketokeneina auttaa. Valmistamamme ExodeUI:n käyttöaika on SwiftUI, joten yksi suunniteltu komponentti jousineen voi toimia SwiftUI:ssä ja muilla alustoilla.

Usein kysytyt kysymykset

Mikä on SwiftUI:n oletusanimaatio?

iOS 17:stä lähtien oletusanimaatio on pehmeä jousi.

Mitä eroa on .snappylla ja .bouncylla?

.snappy asettuu nopeasti pienellä ylityksellä; .bouncy ylittää enemmän. .smoothilla ei ole ylitystä.

Kuinka muunnan vasteen ja vaimennusfraktion kestoksi ja pomppimissuhteeksi?

Vastaus vastaa suunnilleen kestoa. Vaimennusosuus 1 on pomppia 0; pienemmät vaimennusosuudet tarkoittavat enemmän pomppimista.

Kuinka lisään nopeutta vetämällä?

Lue nopeus, kun vastus loppuu, ja käytä interpoloivaa jousta tai uudempia jousisovellusliittymiä, jotka hyväksyvät alkunopeuden.

Aiheeseen liittyviä oppaita ja esimerkkejä

Viritä jousi ennen koodin kirjoittamista

Vedä liukusäätimiä, katso liikettä ja kopioi jousiarvot SwiftUI:lle, CSS:lle ja muille alustoille.

Avaa jousigeneraattori
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 →