如何使部分可折叠?
Posted
技术标签:
【中文标题】如何使部分可折叠?【英文标题】:How to make Section collabsible? 【发布时间】:2021-11-05 16:00:17 【问题描述】:我将我的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")
我在这里错过了什么?
【问题讨论】:
层次结构中有NavigationView
吗?
父View里面有,我只是在里面加了sn-p,那里一切正常,有没有办法让List作为NavigationLink的目的地,还是直接外层的NavigationView必需品? @Yrb
【参考方案1】:
将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)
【讨论】:
以上是关于如何使部分可折叠?的主要内容,如果未能解决你的问题,请参考以下文章
可折叠部分和每个部分的多个自定义 UITableViewCell