UITableView を作成してセルをレンダリングするデモの例を学びました。
私の意見でitems
は、viewModel です。Alamofire または他のライブラリを使用して、ネットワーク経由でデータを要求したいと考えています。応答を受け取ったら、関連するセルのテキストを更新するにはどうすればよいですか?
つまり、viewModel を Cells にバインドしたいのです。モデルのデータが変更されると、セルの内容が自動的に変更される可能性があります。
私は次のような考えを持っています: セルのコンテンツの Observable シーケンスを作成します (セルにバインドします)。サーバーがデータを応答するとき、 function を呼び出します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)