如何在 RxSwift 中使用 tableView 数据源(numberOfRowsInSection)?
Posted
技术标签:
【中文标题】如何在 RxSwift 中使用 tableView 数据源(numberOfRowsInSection)?【英文标题】:How to use tableView's datasource (numberOfRowsInSection) wirh RxSwift? 【发布时间】:2020-03-13 14:40:05 【问题描述】:我在我的应用中使用 RxSwift、RxCocoa 并实现了一个 tableView。 当它从 viewModel 获取 tableView 的 priceData 时,它显示了 priceData 的完整列表。
但我想第一次只显示 50 个计数,并在滚动时显示更多。 在没有 RxSwift/RxCocoa 的情况下,我使用 numberOfRowsInSection 进行 tableView 的分页。
但我不知道如何将它与 RxSwift 一起使用
这是我的代码。我应该如何处理用于制作可分页 tableView 的代码?
viewModel.priceData
.drive(tableView.rx.items(cellIdentifier: "Cell")) (index: Int, list, cell: Cell) in
...
.disposed(by: disposeBag)
【问题讨论】:
我看到的最简单的方法,它只是通过诸如viewModel.loadMore()
的命令类型将数据附加到priceData
。 loadMore() priceData.append(... here append data after 50th index...)
并在UITableView
中的数据末尾调用此方法。但我相信可以有更聪明的方法来做到这一点。如果您需要一种快速的方法,可以选择。
是的,我认为您的建议也可以成为我的解决方案。我试图找出方法,但没有明确的答案......
【参考方案1】:
RxDataSources
库允许您对数据进行分段。将其添加到您的项目中,您就可以使用部分了。
【讨论】:
感谢您让我知道使用 RxDataSources。所以我实现了 RxDataSources 并成功制作了 TableView。但是,我不知道如何控制 numberOfRowInSection... 库自动为您“控制”它。 你的意思是我不需要设置 NumberOfRowsInSection? 是的,我就是这个意思。 解决方案是只在源 observable 中放置 50 个项目,直到用户滚动到底部,然后发出 100 个项目......我不知道这与 numberOfRowsInSection 有什么关系.以上是关于如何在 RxSwift 中使用 tableView 数据源(numberOfRowsInSection)?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 RxSwift 中将多个数据模型绑定到 TableView
RxSwift TableView - 如何设置 numberOfRowsInSection?