[英]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.