SwiftUI Academy · Lektion

Rækker, der kan slettes med swipe

Fjern elementer med onDelete.

Lektion 1 af 413 trin

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:). 🎉

Gratis at komme i gang

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

  1. Rækker, der kan slettes med swipe
  2. Omarrangering med onMove
  3. Tilføjelse af nye elementer
  4. Træk for at opdatere
← Tilbage til SwiftUI Academy