如何使一个视图中的两个列表在SwiftUI中滚动为一个页面?
我正在尝试在SwiftUI中向一个视图添加两个不同大小的表。我希望两个表被完全展开,整个视图作为一个整体滚动。目前,我只得到固定大小的两个表,并分别滚动如何使一个视图中的两个列表在SwiftUI中滚动为一个页面?,swiftui,swiftui-list,Swiftui,Swiftui List,我正在尝试在SwiftUI中向一个视图添加两个不同大小的表。我希望两个表被完全展开,整个视图作为一个整体滚动。目前,我只得到固定大小的两个表,并分别滚动 some View { VStack { Text("Table foo") List(foo { item in Text(item.name) }) Text("Table bar") List(bar { item in Text(item.name) })
some View {
VStack {
Text("Table foo")
List(foo { item in Text(item.name) })
Text("Table bar")
List(bar { item in Text(item.name) })
}
}
尝试将VStack
更改为ScrollView
,这会让事情变得更糟-表正在成为一行程序
还尝试将
List()
替换为ForEach()
,但随后我失去了实际需要的List()
的功能。我想您需要一个列表和多个ForEach。或者,您可以将其设置为包含多个部分的分组列表。以下概念适用于您的样本,在多个场合对我都很有效:
struct SwiftUIView: View {
var body: some View {
List {
Section(header: Text("Table foo"))
{
ForEach(foo) { item in Text(item.name) }
}
Section(header: Text("Table bar"))
{
ForEach(bar) { item in Text(item.name) }
}
}
.listStyle(GroupedListStyle())
}
}
你要找的不是两个不同的列表!这是一个具有自定义瀑布布局的collectionView。你可以用UIKit来做这件事