gpt4 book ai didi

SwiftUI List 在底部添加空白

转载 作者:行者123 更新时间:2023-12-05 02:44:27 29 4
gpt4 key购买 nike

我想让 SwiftUI List 一直滚动到最后一个 Section 的标题将位于 顶部的位置列表 View 。我知道我可以使用 GeometryReader 来计算 List 的高度,并且通过了解每个列表单元格的 height 我可以计算出多少空白空间我应该在列表底部添加以将其向上推。问题是,如果单元格会扩展或具有灵活的大小,那么它将不起作用。我想知道是否有一些我不知道的修饰符或一些更“灵活”的方法来做到这一点?

这是列表

的代码
import SwiftUI

struct ListSections: View {
var body: some View {
List {
Section(header: Text("Header 1")) {
ForEach((0...10), id: \.self) { index in
Text("item \(index)")
}
}

Section(header: Text("Header 2")) {
ForEach((0...12), id: \.self) { index in
Text("item \(index)")
}
}
}
}
}

在下图中,您可以在左侧看到默认情况下我可以滚动多远,在右侧我希望能够滚动多远。

enter image description here

最佳答案

这里有两个选项:选项 1(首选方式)只需在最后一部分添加底部填充:

struct ListSections: View {
var body: some View {
List {
Section(header: Text("Header 1")) {
ForEach((0...10), id: \.self) { index in
Text("item \(index)")
}
}

Section(header: Text("Header 2")) {
ForEach((0...12), id: \.self) { index in
Text("item \(index)")
}
}
.padding(.bottom, 300)
}
}
}

选项 2:在 List 的最后一部分之后添加一个 View 就可以了。例如,我使用了颜色 View 。

您的代码应如下所示:

struct ListSections: View {
var body: some View {
List {
Section(header: Text("Header 1")) {
ForEach((0...10), id: \.self) { index in
Text("item \(index)")
}
}

Section(header: Text("Header 2")) {
ForEach((0...12), id: \.self) { index in
Text("item \(index)")
}
}

Color(.clear)
.frame(height: 300)
}
}
}

关于SwiftUI List 在底部添加空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66494887/

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