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

Posted

技术标签:

【中文标题】如何在 SwiftUI 或无限列表视图中实现列表分页?【英文标题】:How do you implement list paging in SwiftUI or infinite list view? 【发布时间】:2019-09-25 17:28:22 【问题描述】:

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

【问题讨论】:

请提供一些代码或示例以获得更好的解决方案! 【参考方案1】:

您最好的选择是使用.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))

【讨论】:

以上是关于如何在 SwiftUI 或无限列表视图中实现列表分页?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SwiftUI 中创建一个列表视图,每个列表项都是一个 WKWebView(我的实现非常慢并且有问题)

如何实现无限滚动列表视图

限制列表的对象数量 - SwiftUi

SwiftUI 2.0如何实现List整组或组内部分子项的多选功能

iOS 15.0+ 中 SwiftUI 顶部或底部悬浮功能小面板的极简实现

iOS 15.0+ 中 SwiftUI 顶部或底部悬浮功能小面板的极简实现