我有一个我正在重写以使用的 iOS 应用程序RxSwift
和RxCocoa
. 它工作得很好,但我在集合视图数据绑定方面遇到了问题。
在我的应用程序中,我viewWillAppear
在视图控制器上调用时执行数据绑定,例如:
let view = collectionView
getStuff().bind(to: view.rx.items(cellIdentifier: "Cell", cellType: Cell.self)) {
row, item, cell in
cell.setup(with: item)
}.disposed(by: disposeBag)
```
这很好用 - 我的数据正确绑定到我的集合视图。
但是,为了避免对当前不可见的视图控制器进行活动绑定,我会在调用disposeBag
时解除分配。viewWillDisappear
然后,每当再次显示 vc 时,我都会重新创建处理包并重新绑定数据。
我的问题是,当我将数据重新绑定到集合视图时,内容偏移量被重置。考虑一个场景,当一个项目被点击时,我列出内容并导航到一个新的视图控制器。每当我回到列表时,新的数据绑定将导致滚动视图滚动到顶部。
集合视图的默认行为是保持其偏移量,即使数据源更改并被reloadData
调用。我在这里遗漏了什么还是我做错了什么?