List & ForEach
Penjelasan
List adalah container yang menampilkan baris-baris data secara vertikal dengan gaya bawaan platform (mirip UITableView di iOS), lengkap dengan scrolling otomatis. Untuk menampilkan data dinamis dari array, kamu gabungkan List dengan ForEach — ForEach mengiterasi koleksi dan membuat satu View untuk tiap elemennya. Agar SwiftUI tahu cara membedakan tiap baris (untuk animasi insert/delete/reorder yang benar), setiap elemen harus punya identitas unik. Kalau tipe datamu sudah conform ke protocol Identifiable (biasanya lewat property id), ForEach(items) { item in ... } otomatis memakainya. Kalau belum, kamu bisa memberi key path manual: ForEach(items, id: \\.self).
Contoh Konsep
import SwiftUI
struct Buah: Identifiable {
let id = UUID()
let nama: String
}
struct DaftarBuahView: View {
let buahList = [
Buah(nama: "Apel"),
Buah(nama: "Mangga"),
Buah(nama: "Jeruk")
]
var body: some View {
List {
ForEach(buahList) { buah in
Text(buah.nama)
}
}
}
}
Praktikum
Buat struct Kota: Identifiable dengan property nama: String, isi array berisi minimal 3 kota, lalu tampilkan dalam List menggunakan ForEach.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Hindari memakai UUID() baru setiap kali body dievaluasi ulang (mis. dibuat di dalam computed property) — itu membuat SwiftUI mengira semua baris berubah identitas dan animasinya jadi aneh. Simpan id sebagai property tetap saat objek dibuat.