SwiftUI Academy · บทเรียน

แถวที่ปัดเพื่อลบ

ลบรายการด้วย onDelete

บทเรียน 1 จาก 413 ขั้นตอน

แถวที่ปัดเพื่อลบ เป็นบทเรียน SwiftUI Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน SwiftUI Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส SwiftUI Academy มีบทเรียนทั้งหมด 4 บทเรียน

บางส่วนของบทเรียนนี้ยังไม่ได้รับการแปล และแสดงเป็นภาษาอังกฤษ

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

เริ่มต้นได้ฟรี

เรียนรู้ Swift ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
30
บทเรียน
120

คำถามที่พบบ่อย

บทเรียน “แถวที่ปัดเพื่อลบ” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “แถวที่ปัดเพื่อลบ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส SwiftUI Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส SwiftUI Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “แถวที่ปัดเพื่อลบ”

ลบรายการด้วย onDelete คุณปฏิบัติ SwiftUI Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน SwiftUI Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน SwiftUI Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “แถวที่ปัดเพื่อลบ” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน SwiftUI Academy นี้ได้ไหม

ได้ บทเรียน SwiftUI Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. แถวที่ปัดเพื่อลบ
  2. การจัดลำดับใหม่ด้วย onMove
  3. การเพิ่มรายการใหม่
  4. ดึงเพื่อรีเฟรช
← กลับไปที่ SwiftUI Academy