моя ячейка просмотра таблицы при прокрутке вниз. Я использую rxswift, чтобы связать табличное представление с наблюдаемыми. Как я могу гарантировать, что ячейки имеют реальные значения и не изменяются при прокрутке?
Вот мой код: let observableItems = viewModel.getShoppingList (). AsObservable ()
observableItems.bind(to: tableViewShoppingList.rx.items(cellIdentifier: "shoppingListCell", cellType: ShoppingListTableViewCell.self)) { (row, element, cell) in
print(row)
cell.nameTextField.text = element.title
cell.amountLabel.isHidden = true
//Check if Amount is nil
if element.amount == "" {
cell.amountTextField.placeholder == "Menge"
} else {
cell.amountTextField.text = element.amount
}
//Amount TextField
cell.amountTextField
.rx
.controlEvent([.editingDidEnd])
.withLatestFrom(cell.amountTextField.rx.text)
.subscribe(onNext: {[weak self] (text) in
if text == "" {
//DO NOTHING
} else {
guard let text = text else { return }
let data = ShoppingListData(_id: element.id, title: element.title, amount: text, status: element.status, position: element.position)
self?.viewModel.updateShoppingListItem(data: data)
}
})
.addDisposableTo(cell.bag)
//Check Status
if element.status == true {
cell.checkMarcButton.isSelected = true
} else {
cell.checkMarcButton.isSelected = false
}
//Checkmarc Button
cell.checkMarcButton.rx.tap.asDriver()
.drive(onNext: { [weak self] in
if cell.checkMarcButton.isSelected {
cell.checkMarcButton.isSelected = false
let data = ShoppingListData(_id: element.id, title: element.title, amount: element.amount, status: false, position: element.position)
self?.viewModel.updateShoppingListItem(data: data)
} else {
cell.checkMarcButton.isSelected = true
let data = ShoppingListData(_id: element.id, title: element.title, amount: element.amount, status: true, position: element.position)
self?.viewModel.updateShoppingListItem(data: data)
}
}).disposed(by: cell.bag)
//TableView Style
cell.selectionStyle = UITableViewCell.SelectionStyle.none
}.addDisposableTo(disposeBag)