1

当我单击以触发数据更改的单元格时,我的变量绑定到的 tableView 会跳转/出现故障。

下面是 tableView 和变量的绑定方式:

variable.asObservable()
        .bind(to: tableView.rx.items)
            { (tableView, row, dataForRow) in

}

当按下 tableView 中的一个按钮时,我最终会像这样更新变量的值:

variable.value = updatedData

有谁知道为什么会发生这种情况?

任何帮助,将不胜感激。

提前致谢。

4

2 回答 2

1

reloadData每次观察到的数组更改时,都会调用标准 UITableView 绑定器。reloadData 调用不会设置动画,还会将表格视图重置为顶部。这可能就是您所看到的。您的选择是创建自己的 UITableViewDataSource 对象,该对象仅重新加载实际更改的单元格,或者使用为您执行此操作的 RxDataSources cocoapod 库。

于 2017-08-06T01:26:15.370 回答
0

要解决此问题,您必须在调用 prepareForReuse() 时将新的 DisposeBag 实例分配给单元格的 disposeBag 变量:

class CustomCell: UITableViewCell{

var disposeBag = DisposeBag() 


override func prepareForReuse() {
        super.prepareForReuse()

        disposeBag = DisposeBag() 
    }
}
于 2017-08-06T12:45:35.957 回答