Filas con deslizamiento para eliminar
Elimine elementos con onDelete.
Filas con deslizamiento para eliminar es una lección gratuita de SwiftUI Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de SwiftUI Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de SwiftUI Academy incluye 4 lecciones en total.
Partes de esta lección aún no han sido traducidas y se muestran en inglés.
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:). 🎉
Aprende Swift con un tutor de IA — gratis
Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.
- Cursos
- 30
- Lecciones
- 120
Preguntas frecuentes
¿La lección «Filas con deslizamiento para eliminar» es gratis?
Sí — el texto completo de «Filas con deslizamiento para eliminar» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de SwiftUI Academy, actualiza a CoddyKit PRO. El curso de SwiftUI Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Filas con deslizamiento para eliminar»?
Elimine elementos con onDelete. Practicas SwiftUI Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar SwiftUI Academy?
No se requiere experiencia previa. SwiftUI Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «Filas con deslizamiento para eliminar»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de SwiftUI Academy?
Sí. Cada lección de SwiftUI Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Filas con deslizamiento para eliminar
- Reordenación con onMove
- Añadir elementos nuevos
- Deslizar para actualizar