Rækker, der kan slettes med swipe
Fjern elementer med onDelete.
Rækker, der kan slettes med swipe er en gratis SwiftUI Academy-lektion på CoddyKit. Dette er lektion 1 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.
Lister, hvor rækker kan fjernes
En statisk liste viser kun data. Rigtige apps lader brugerne fjerne elementer, og SwiftUI gør sletning naturlig med et enkelt swipe. ✨
Mød onDelete
Modifikatoren onDelete sættes på en ForEach inde i en List. Den aktiverer swipe-mod-venstre-bevægelsen, som viser en rød Delete-knap.
Dine data ligger i State
For at slette en række skal du eje dataene. Opbevar dit array i @State, så en ændring straks opdaterer listen på skærmen.
struct Item: Identifiable {
let id = UUID()
var name: String
}Erklæring af arrayet
Opbevar dine elementer i et ændringsbart @State-array. Når du fjerner et element, animerer SwiftUI rækken væk uden ekstra arbejde.
@State private var items = [
Item(name: "Milk"),
Item(name: "Eggs")
]Argumentet IndexSet
onDelete giver dig et IndexSet med de rækker, brugeren swipede. Det er et sæt, fordi en person kan fjerne flere på én gang.
Fjernelse med offsetværdier
Giv dette IndexSet direkte til arrayets metode remove(atOffsets:). Én linje fjerner præcis de valgte elementer på en sikker måde.
func delete(at offsets: IndexSet) {
items.remove(atOffsets: offsets)
}Sæt det hele sammen
Placér dine rækker i en ForEach inde i en List, og tilføj derefter onDelete for at kalde din slettefunktion. Det er hele mønsteret.
List {
ForEach(items) { item in
Text(item.name)
}
.onDelete(perform: delete)
}Inline-closures fungerer også
Du kan springe den navngivne funktion over og skrive sletningen direkte i onDelete som en closure, når logikken er meget lille.
.onDelete { offsets in
items.remove(atOffsets: offsets)
}Gratis swipe-animation
Fordi items er @State, sammenligner SwiftUI før og efter og lader den slettede række glide jævnt ud. Du behøver ikke selv skrive animationen.
Sæt den på ForEach, ikke List
En almindelig fejl er at sætte onDelete på List. Den hører til på ForEach, fordi det er den, der forbinder dit array med rækkerne.
Tilpassede swipehandlinger
Hvis du vil mere end at slette, skal du bruge swipeActions, som lader dig tilføje farvede knapper som Archive eller Flag i begge sider.
.swipeActions {
Button("Flag") { }
.tint(.orange)
}Hurtigt tjek
Hvor skal onDelete-modifikatoren placeres?
Opsummering: Slet med swipe
Du har lært at opbevare items i @State, sætte onDelete på en ForEach og fjerne swipe-valgte rækker med remove(atOffsets:). 🎉
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 “Rækker, der kan slettes med swipe” gratis?
Ja — hele teksten til “Rækker, der kan slettes med swipe” 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 “Rækker, der kan slettes med swipe”?
Fjern elementer med onDelete. 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 1 af 4.
Hvor lang tid tager lektionen “Rækker, der kan slettes med swipe”?
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