私が書いているアプリケーションでは、MVVMを使用することにしました。 RxSwift + RxCocoaを使ってViewModelsをビューでバインドしています。今私は自分自身で解決策を見つけることができない問題に直面しています。イメージをダウンロードした後、UITableViewの行をリロードする(MVVMを使用)
私は、私がUITableViewで表示したいViewModelsのリストを持っています。 tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath)
メソッドでは、セルをデキューしています。リストからViewModelsの1つをこのセルにバインドしています。 ViewModelにはimageUrl
Variableがあり、Kingfisherを使用してこの画像をダウンロードし、その画像をImageViewに挿入します。
ここに私の問題があります:ダウンロードが完了したら、自動レイアウトが正しい高さを計算するようにこの行をリロードする必要があります。しかし、tableView.reloadRows(at: [indexPath], with: .none)
を使用すると、バインディングが再作成され、無限ループ(バインディング - >イメージダウンロード完了コールバック - >リロード行 - >バインディング - > ...)が発生します。
これを回避する方法はありますか?
上のこの良い例を見つけることができます! –