Omarrangering med onMove
Træk i rækker for at omarrangere dem.
Omarrangering med onMove er en gratis SwiftUI Academy-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i SwiftUI Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. SwiftUI Academy-kurset indeholder 4 lektioner i alt.
Lad brugerne omarrangere rækker
Nogle gange er rækkefølgen vigtig, f.eks. i en prioriteret to-do-liste. SwiftUI lader brugerne trække rækker til en ny rækkefølge med næsten ingen ekstra kode. ✨
Mød onMove
Modifikatoren onMove sidder på din ForEach og aktiverer trækgreb, så rækker kan løftes og slippes et andet sted.
Flyttesignaturen
onMove giver dig to ting: et IndexSet med de rækker, der flyttes, og et Int-destinationsindeks, hvor de skal placeres.
func move(from source: IndexSet,
to destination: Int) {
}Én arraymetode klarer det
Swift-arrays har en indbygget move(fromOffsets:toOffset:), som omarrangerer dem for dig med ét enkelt, sikkert kald.
items.move(fromOffsets: source,
toOffset: destination)Tilslutning af onMove
Sæt onMove(perform:) på ForEach, og lad den pege på din flyttefunktion. Nu understøtter listen træk og omarrangering.
ForEach(items) { item in
Text(item.name)
}
.onMove(perform: move)Redigeringstilstand viser trækgreb
Trækgreb vises ofte kun i redigeringstilstand. En EditButton i værktøjslinjen skifter listen til redigering, så brugerne kan omarrangere.
.toolbar {
EditButton()
}Omarrangering uden redigeringstilstand
I en plain List kan rækker ofte trækkes med det samme. Redigeringstilstand er primært relevant, når du også viser kontroller til sletning og flytning.
State bevarer rækkefølgen
Fordi move() ændrer dit @State-array, overlever den nye rækkefølge opdateringer af visningen og afspejles alle steder, hvor arrayet læses.
Kombinér flytning og sletning
Du kan sætte både onMove og onDelete på den samme ForEach, så brugerne får fuld kontrol over at omarrangere og fjerne rækker.
ForEach(items) { Text($0.name) }
.onDelete(perform: delete)
.onMove(perform: move)Inline-flytteclosure
Ligesom ved sletning kan du skrive omarrangeringen inline. Kald blot move(fromOffsets:toOffset:) direkte inde i onMove-closure-funktionen.
.onMove { source, dest in
items.move(fromOffsets: source,
toOffset: dest)
}Jævne trækkeanimationer
SwiftUI animerer automatisk, hvordan de trukne rækker løftes, glider og falder på plads. Du får en poleret bevægelse uden animationskode.
Hurtigt tjek
Hvad giver onMove til din håndteringsfunktion?
Opsummering: Omarrangering
Du har tilføjet træk og omarrangering ved at sætte onMove på en ForEach og kalde move(fromOffsets:toOffset:) på dit state-array. 🎉
Lær Swift med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 30
- Lektioner
- 120
Ofte stillede spørgsmål
Er lektionen “Omarrangering med onMove” gratis?
Ja — hele teksten til “Omarrangering med onMove” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af SwiftUI Academy-kurset, skal du opgradere til CoddyKit PRO. SwiftUI Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Omarrangering med onMove”?
Træk i rækker for at omarrangere dem. Du øver dig i SwiftUI Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på SwiftUI Academy?
Der kræves ingen tidligere erfaring. SwiftUI Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.
Hvor lang tid tager lektionen “Omarrangering med onMove”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne SwiftUI Academy-lektion?
Ja. Alle SwiftUI Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Rækker, der kan slettes med swipe
- Omarrangering med onMove
- Tilføjelse af nye elementer
- Træk for at opdatere