【问题标题】:How to use tableView's datasource (numberOfRowsInSection) wirh RxSwift?如何在 RxSwift 中使用 tableView 数据源(numberOfRowsInSection)?
【发布时间】: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 中的数据末尾调用此方法。但我相信可以有更聪明的方法来做到这一点。如果您需要一种快速的方法,可以选择。
  • 是的,我认为您的建议也可以成为我的解决方案。我试图找出方法,但没有明确的答案......

标签: ios tableview rx-swift rx-cocoa


【解决方案1】:

RxDataSources 库允许您对数据进行分段。将其添加到您的项目中,您就可以使用部分了。

【讨论】:

  • 感谢您让我知道使用 RxDataSources。所以我实现了 RxDataSources 并成功制作了 TableView。但是,我不知道如何控制 numberOfRowInSection...
  • 库自动为您“控制”它。
  • 你的意思是我不需要设置 NumberOfRowsInSection?
  • 是的,我就是这个意思。
  • 解决方案是只在源 observable 中放置 50 个项目,直到用户滚动到底部,然后发出 100 个项目......我不知道这与 numberOfRowsInSection 有什么关系.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-07
  • 1970-01-01
相关资源
最近更新 更多