Apa persyaratan untuk Daftar yang dapat diperluas gratis di SwiftUI?

Dec 02 2020

Di suatu tempat di kode saya, saya memiliki daftar yang cukup standar ini dengan bagian:

var body: some View {
    List {
        ForEach(userData.groupedBookings) { group in
            Section(header: Text(group.key)) {
                ForEach(group.items) { booking in
                    LessonRow(booking: booking)
                }
            }
        }
    }
}

Entah bagaimana dengan kode ini bagian-bagiannya dapat diperluas / diciutkan, yang membuat saya senang, tetapi saya tidak tahu mengapa. Saya sangat frustrasi karena saya ingin mereproduksi perilaku ini di tempat lain dengan kode serupa dan tidak mendapatkan perluasan / penciutan.

Apa persyaratan untuk mendapatkan ini secara otomatis?

Jawaban

2 Asperi Dec 02 2020 at 15:43

Ini diaktifkan oleh gaya daftar bilah sisi (yang dalam beberapa kondisi dianggap sebagai default), yang dapat Anda gunakan secara eksplisit

List {
    ForEach(userData.groupedBookings) { group in
        Section(header: Text(group.key)) {
            ForEach(group.items) { booking in
                LessonRow(booking: booking)
            }
        }
    }
}
.listStyle(SidebarListStyle())

sebagai alternatif, Anda dapat menggunakan DisclosureGroupsecara eksplisit untuk memiliki perilaku pengungkapan untuk bagian, seperti dihttps://stackoverflow.com/a/63228810/12299030