在我正在编写的应用程序中,我决定使用 MVVM 模式。我正在使用 RxSwift + RxCocoa 将 ViewModels 与 Views 绑定。现在我面临一个问题,我自己找不到任何解决方案。
我有一个要在 UITableView 中显示的 ViewModel 列表。在tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath)
方法中,我将一个单元格出列,并将列表中的一个 ViewModel 绑定到该单元格。ViewModel 具有imageUrl
变量,我使用 Kingfisher 下载此图像并将其放入该单元格中的 ImageView 中。
所以这是我现在的问题:下载完成后,我必须重新加载这一行,以便自动布局计算其正确高度。但是当我使用tableView.reloadRows(at: [indexPath], with: .none)
绑定时,它会重新创建并以无限循环结束(绑定 -> 图像下载完成回调 -> 重新加载行 -> 绑定 -> ...)!
任何想法如何解决这个问题?