如何使一个视图中的两个列表在 SwiftUI 中滚动为一页?

Mak*_*aus 3 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) })
    }
}
Run Code Online (Sandbox Code Playgroud)

尝试更改VStack为 a ScrollView,这让事情变得更糟 - 桌子正在变成一个衬垫。

也尝试替换为List()ForEach()但后来我失去了List()我真正想要的功能。

Chu*_*k H 6

我认为您想要一个包含多个 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())
    }
}
Run Code Online (Sandbox Code Playgroud)