В приложении, которое я пишу, я решил использовать шаблон MVVM. Я привязываю ViewModels к Views, используя RxSwift + RxCocoa. Теперь столкнулся с проблемой, сам не могу найти решения.
У меня есть список ViewModels, которые я хочу отобразить в UITableView. В методе tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath)
я удаляю ячейку из очереди и привязываю одну из ViewModels из списка к этой ячейке. ViewModel имеет переменную imageUrl
, и я использую Kingfisher, чтобы загрузить это изображение и поместить его в ImageView в этой ячейке.
Итак, вот моя проблема: когда загрузка завершена, мне нужно перезагрузить эту строку, чтобы Auto Layout вычислил ее правильную высоту. Но когда я использую tableView.reloadRows(at: [indexPath], with: .none)
, привязка воссоздается и заканчивается бесконечным циклом (привязка -> обратный вызов завершения загрузки изображения -> перезагрузить строку -> привязка -> ...)!
Любые идеи, как обойти это?