W wersji demo nauczyłem się example, aby utworzyć UITableView i renderować komórki.Jak powinienem dokonać aktualizacji UITableViewCell za pomocą RxSwift?
Moim zdaniem, items
to viewModel, chcę zażądać pewnych danych w sieci przy użyciu Alamofire lub innej biblioteki. Kiedy otrzymam odpowiedź, Jak mogę zaktualizować tekst komórki?
Innymi słowy, chcę powiązać viewModel z komórkami. Gdy dane modelu uległy zmianie, zawartość komórki mogła się zmienić automatycznie.
Mam pomysł: utworzyć obserwowalną sekwencję zawartości komórki (powiązanie z komórką). Kiedy dane odpowiedzi serwera, wywołują funkcję tableView.reloadRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Top)
. Ale to nie jest łaska ani dobra metoda.
Więc nadzieja niektóre mogą mi pomóc :)
let items = Observable.just([
"First Item",
"Second Item",
"Third Item"
])
items
.bindTo(tableView.rx_itemsWithCellIdentifier("Cell", cellType: UITableViewCell.self)) { (row, element, cell) in
cell.textLabel?.text = "\(element) @ row \(row)"
/* to do some binding or something else ? */
}
.addDisposableTo(disposeBag)
tableView
.rx_modelSelected(String)
.subscribeNext { value in
DefaultWireframe.presentAlert("Tapped `\(value)`")
}
.addDisposableTo(disposeBag)
Cześć, Artem Kislitsyn, Thaks za odpowiedź. W moim projekcie chcę zaktualizować zawartość komórki na żądanie z sieci w tle. Kiedy odpowiedź serwera, komórka może zaktualizować zawartość automatycznie ... – Bronts
W przykładowym projekcie RXExample WikipediaImageSearch moduł pokazuje, jak można wykonać żądanie w tle lub GitHubSearchRepositories –