Каковы требования к бесплатному расширяемому списку в SwiftUI?

Dec 02 2020

Где-то в моем коде есть довольно стандартный список с разделами:

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

Каким-то образом с помощью этого кода разделы можно расширять / сворачивать, что меня радует, но я не знаю почему. Я особенно расстроен, потому что я хочу воспроизвести это поведение в другом месте с аналогичным кодом и не получить развернутый / свернутый.

Что необходимо для автоматического получения этого?

Ответы

2 Asperi Dec 02 2020 at 15:43

Он активируется стилем списка боковой панели (который в некоторых условиях считается по умолчанию), который вы можете использовать явно

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

в качестве альтернативы вы можете DisclosureGroupявно использовать поведение раскрытия для разделов, как вhttps://stackoverflow.com/a/63228810/12299030