如何使部分可折叠?

How to make Section collabsible?

我的 SectionedFetchResults 排在 List 中,完全按照今年 WWDC 的 the Intro 排序。 据说,这些部分应该自动折叠,并且它们在预览中:

然而,我的经历却截然不同:

即使我使用相同的代码:

var items: SectionedFetchResults<String, Item>

var body: some View {
    List{
        ForEach(items) { section in
            Section(header: Text(section.id)) {
                ForEach(section) { item in
                    Text(item.timestamp, formatter: itemFormatter)
                    }.onDelete { indexSet in
                        withAnimation {
                          deleteItem(
                            for: indexSet,
                            section: section,
                            viewContext: viewContext)
                        }
                    }
            }
        }
    }.navigationTitle("Liste")
}

我在这里错过了什么?

SidebarListStyle 添加到您的 List

struct ContentView : View {
    var body: some View {
        NavigationView {
            List {
                Section(header: Text("Header")) {
                    Text("Item 1")
                    Text("Item 2")
                    Text("Item 3")
                    Text("Item 4")
                }
            }.listStyle(SidebarListStyle()) //<-- Here
        }
    }
}

默认 List 样式已因版本而异,并且可能(?)还受到导航层次结构中父视图的影响。明确添加 SidebarListStyle 似乎可以可靠地添加可折叠功能。

还有一个更新的语法:

.listStyle(.sidebar)