gpt4 book ai didi

ios - SwiftUI:如何让 ScrollView 包含完整列表长度

转载 作者:行者123 更新时间:2023-11-29 05:09:07 25 4
gpt4 key购买 nike

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

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()

}

这是我滚动列表时得到的结果: enter image description here

最佳答案

这里实际上有两个 ScrollView。您需要使用单个 List 并将其他项目放置为 Section header 。不幸的是,List 似乎并不像 UITableView 那样支持整个 View 的 header 。

    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)
}
}
}
}

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

enter image description here enter image description here

关于ios - SwiftUI:如何让 ScrollView 包含完整列表长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59851286/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com