如何使部分可折叠?
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)
我的 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)