我是RXswift的新手,目前在一个需要rxswift和UITableViewCell内具有UITableView的项目中工作
下面是我到目前为止完成的一些代码,但是每次向上/向下滚动时,它都不会显示正确的值
var disposeBag = DisposeBag()
viewModel.listExperience.asObservable().bind(to: tableView.rx.items(cellIdentifier: cellExperienceTableViewCell.getCellId(), cellType: ExperienceTableViewCell.self)){
row , data, cell in
cell.lblTitle.text = data.title ?? ""
cell.lblDate.text = data.startDate ?? ""
cell.lblDetails.text = data.body ?? ""
let filtered = self.viewModel.getDataCommentInRow(row) /* returns Variable<[Comments]> */
cell.setCommentTableView(row: row, filtered: filtered)
cell.tableViewOffset = self.storedOffsets[row] ?? 0
cell.tableViewComments.reloadData()
}.disposed(by: disposeBag)
这是tableView单元格中tableView的代码
func setCommentTableView(row : Int, filtered : Variable<[ExperienceComment]>){
tableViewComments.tag = row
filtered.asObservable().bind(to: tableViewComments.rx.items(cellIdentifier: commentCell.getCellId(), cellType: CommentCell.self)){ indexPath , data, cell in
cell.lblComment.text = data.body
}.disposed(by: disposeBag)
}
有人知道如何实现这一目标吗?谢谢
答案 0 :(得分:1)
我认为您唯一要做的就是在表格视图单元格中添加一个from multiprocessing import Pipe
class MainWindow(QWidget):
def __init__(...):
...
self.from_loopback,self.to_loopback=Pipe(False)
def get_html(self):
current_page = self.web_view.page()
current_page.toHtml(self.to_loopback.send)
return self.from_loopback.recv()
方法。在其中添加prepareForReuse
。为此,请确保您的DisposeBag是单元格中的var。
如果我是对的话,问题在于当单元被重用时,它开始从多个disposeBag = DisposeBag()
可观察对象中读取,因为它们都绑定到同一tableViewComments。