Skip to main content
LanguageNederlands
Engineering5 minuten lezenOktober 2026

Hoe werken lente-animaties in SwiftUI?

Kort antwoord

In SwiftUI voeg je een veer toe met .animation(.spring) of withAnimation(.spring). Sinds iOS 17 zijn de belangrijkste instellingen duur en bounce, en zijn er presets: .smooth (geen bounce), .snappy (een beetje) en .bouncy (meer). Oudere code maakt gebruik van respons en dempingFraction. SwiftUI-veren behouden hun snelheid wanneer een nieuwe animatie ze onderbreekt, waardoor gebaren natuurlijk aanvoelen.

Kern afhaalmaaltijd

  • Gebruik withAnimation(.spring) voor statuswijzigingen, of .animation(.spring, value:) voor een weergave
  • iOS 17+: .spring(duur:bounce:) plus voorinstellingen .smooth, .snappy en .bouncy
  • Oudere API: .spring(response:dampingFraction:blendDuration:)
  • Springs is de standaard animatiestijl van SwiftUI sinds iOS 17
  • Onderbroken veren behouden hun snelheid, zodat gebaren soepel verlopen

SwiftUI animeert statusveranderingen. Wanneer een waarde zoals isExpanded binnen verandert withAnimation(.spring), wordt elke weergave die ervan afhankelijk is, met behulp van een veer naar de nieuwe lay-out verplaatst.

In iOS 17 en hoger is de eenvoudigste manier om een ​​veer te beschrijven met twee waarden: duur, hoe lang het ongeveer duurt voordat de veer tot rust komt, en stuiteren, hoeveel de veer doorschiet. Een bounce van 0 zorgt voor een vloeiende beweging zonder doorschieten; hogere waarden voegen bounce toe. Apple biedt ook voorinstellingen: .smooth, .snappy en .bouncy.

Oudere code gebruikt .spring(response:dampingFraction:). De respons is vergelijkbaar met de duur, en een dempingsfractie van 1 betekent dat er geen bounce is, terwijl lagere waarden voor bounce zorgen. Beide vormen beschrijven dezelfde fysieke lente.

Het grote voordeel van veren is de onderbreking. Als een gebruiker opnieuw tikt of een sleepgebaar halverwege de animatie eindigt, begint de nieuwe veer vanaf de huidige positie en snelheid, dus er is geen sprong. Voor sleepgebaren geeft u de snelheid van het gebaar door wanneer de gebruiker loslaat, zodat het element doorgaat in de richting waarin het werd gegooid.

Als hetzelfde onderdeel ook op internet of Android moet draaien, helpt het behouden van veerwaarden als gedeelde bewegingstokens. De ExodeUI, die wij maken, heeft een SwiftUI-runtime, dus één ontworpen component met zijn veren kan in SwiftUI en op andere platforms worden gespeeld.

Veelgestelde vragen

Wat is de standaardanimatie in SwiftUI?

Sinds iOS 17 is de standaardanimatie een vloeiende veer.

Wat is het verschil tussen .snappy en .bouncy?

.snappy herstelt zich snel met een kleine overschrijding; .bouncy schiet meer door. .smooth heeft geen overshoot.

Hoe converteer ik respons en dempingFraction naar duur en bounce?

De respons komt grofweg overeen met de duur. Een dempingsfractie van 1 is stuiteren 0; lagere dempingsfracties betekenen meer veerkracht.

Hoe voeg ik snelheid toe via een sleepgebaar?

Lees de snelheid af wanneer de weerstand eindigt en gebruik een interpolerende veer of de nieuwere veer-API's die een initiële snelheid accepteren.

Gerelateerde handleidingen en voorbeelden

Stem een ​​veer af voordat u code schrijft

Versleep de schuifregelaars, bekijk de beweging en kopieer veerwaarden voor SwiftUI, CSS en andere platforms.

Open de veergenerator
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 →