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

时间:2019-10-21 21:04:12

标签: 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) })
    }
}

试图将VStack更改为ScrollView,这会使情况变得更糟-桌子正变成一线。

也尝试将List()替换为ForEach(),但随后我却失去了我想要的List()的功能。

1 个答案:

答案 0 :(得分:0)

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