如何在 SwiftUI 或无限列表视图中实现列表分页?

sua*_*lai 3 swiftui swiftui-list

我需要有关如何在 SwiftUI 中实现无限列表滚动或分页列表的帮助。提前致谢

Pro*_*in8 8

最好的办法是使用.onAppear并计算是否需要获取下一页。这是一个人为的例子,因为通常您正在访问比这慢得多的网络或磁盘,但它会给您一个想法。调整getNextPageIfNecessary(_:)您的特定用例。

@State var rows: [String] = Array(repeating: "Item", count: 20)

var body: some View {

    List(0..<rows.count, id: \.self) { index in
        Text(verbatim: self.rows[index])
            .onAppear {
                self.getNextPageIfNecessary(encounteredIndex: index)
            }
    }
}

private func getNextPageIfNecessary(encounteredIndex: Int) {
    guard encounteredIndex == rows.count - 1 else { return }

    rows.append(contentsOf: Array(repeating: "Item", count: 20))
}
Run Code Online (Sandbox Code Playgroud)