我在演示中学习了创建 UITableView 和渲染单元格的示例。
在我看来,items
是 viewModel,我想通过使用 Alamofire 或其他库跨网络请求一些数据。当我收到回复时,如何更新单元格的相关文本?
换句话说,我想将 viewModel 绑定到 Cells。当模型的数据发生变化时,单元格的内容会自动发生变化。
我的一个想法是:为单元格的内容创建一个 Observable 序列(绑定到单元格)。当服务器响应数据时,它调用函数tableView.reloadRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Top)
。但这似乎不是一个优雅或好的方法。
所以,希望有人能帮助我:)
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)