Supprimer des lignes par balayage
Supprimez des éléments avec onDelete.
Supprimer des lignes par balayage est une leçon SwiftUI Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage SwiftUI Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours SwiftUI Academy comprend 4 leçons au total.
Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.
Lists That Can Lose Rows
A static list just shows data. Real apps let people remove items, and SwiftUI makes deletion feel native with a simple swipe. ✨
Meet onDelete
The onDelete modifier attaches to a ForEach inside a List. It enables the swipe-left gesture that reveals a red Delete button.
Your Data Lives in State
To delete a row you must own the data. Keep your array in @State so changing it instantly refreshes the list on screen.
struct Item: Identifiable {
let id = UUID()
var name: String
}Declaring the Array
Hold your items in a mutable @State array. When you remove an element, SwiftUI animates the row away for free.
@State private var items = [
Item(name: "Milk"),
Item(name: "Eggs")
]The IndexSet Argument
onDelete hands you an IndexSet of the rows the user swiped. It is a set because a person could remove several at once.
Removing by Offsets
Pass that IndexSet straight to the arrays remove(atOffsets:) method. One line removes exactly the swiped items safely.
func delete(at offsets: IndexSet) {
items.remove(atOffsets: offsets)
}Wiring It Together
Put your rows in a ForEach inside a List, then attach onDelete to call your delete function. That is the whole pattern.
List {
ForEach(items) { item in
Text(item.name)
}
.onDelete(perform: delete)
}Inline Closures Work Too
You can skip the named function and write the deletion right inside onDelete as a closure when the logic is tiny.
.onDelete { offsets in
items.remove(atOffsets: offsets)
}Free Swipe Animation
Because items is @State, SwiftUI compares before and after and slides the deleted row out smoothly. You never write the animation yourself.
Attach to ForEach, Not List
A common slip is putting onDelete on the List. It belongs on the ForEach, since that is what maps your array to rows.
Custom Swipe Actions
For more than delete, reach for swipeActions, which lets you add tinted buttons like Archive or Flag on either edge.
.swipeActions {
Button("Flag") { }
.tint(.orange)
}Quick Check
Where does the onDelete modifier belong?
Recap: Swipe-to-Delete
You learned to keep items in @State, attach onDelete to a ForEach, and remove swiped rows with remove(atOffsets:). 🎉
Questions Fréquemment Posées
La leçon « Supprimer des lignes par balayage » est-elle gratuite ?
Oui — le texte complet de « Supprimer des lignes par balayage » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours SwiftUI Academy, passe à CoddyKit PRO. Le cours SwiftUI Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Supprimer des lignes par balayage » ?
Supprimez des éléments avec onDelete. Tu pratiques SwiftUI Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer SwiftUI Academy ?
Aucune expérience préalable n'est requise. SwiftUI Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Supprimer des lignes par balayage » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon SwiftUI Academy ?
Oui. Chaque leçon SwiftUI Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Supprimer des lignes par balayage
- Réorganiser avec onMove
- Ajouter de nouveaux éléments
- Actualiser en tirant