繁体   English   中英

SwiftUI:如何让滚动视图包含完整列表长度

[英]SwiftUI: How to get scrollview to contain full list length

我有一个滚动视图,其中包含一个包含一些文本和列表的 vstack。 列表独立于滚动视图滚动,导致文本成为列表标题的效果。 我想让滚动视图而不是让列表完全展开,以便所有内容一起滚动。

ScrollView {
                VStack(alignment: .leading) {
                    Text(self.person.name)

                    Text(self.person.email)
                        .font(.subheadline)
                        .padding(.top)

                    Text(self.person.about)
                        .foregroundColor(.secondary)
                        .padding()

                    List {
                        Section {
                            ForEach(self.friends, id: \.id) { friend in
                                Text(friend.name)
                            }
                        }
                    }
                    Spacer()
                 }
                .padding()

            }

这是我滚动列表时得到的: 在此处输入图像描述

您实际上已经在此处获得了两个 ScrollView。 您需要使用单个List并将其他项目放置为Section标题。 不幸的是, List似乎不像UITableView那样支持整个视图的标题。

    var body: some View {
        List {
            Section(header:
                VStack(alignment: .leading) {
                    Text(self.person.name)

                    Text(self.person.email)
                        .font(.subheadline)
                        .padding(.top)

                    Text(self.person.about)
                        .foregroundColor(.secondary)
                        .padding()
                }
            ) {
                ForEach(self.friends, id: \.id) { friend in
                    Text(friend.name)
                }
            }
        }
    }

编辑:也许您甚至不在寻找标题? 在这种情况下,只需将您想要的内容放在ForEach之上。

    var body: some View {
        List() {
            Section {

                VStack(alignment: .leading) {
                    Text(self.person.name)

                    Text(self.person.email)
                        .font(.subheadline)
                        .padding(.top)

                    Text(self.person.about)
                        .foregroundColor(.secondary)
                        .padding()
                }

                ForEach(self.friends, id: \.id) { friend in
                    Text(friend.name)
                }
            }
        }
    }

这是带标题和不带标题的结果:

在此处输入图像描述 在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM