下载图像后使用MVVM重新载入UITableView行
问题描述:
在应用程序中,我写了一个决定使用MVVM模式。我使用RxSwift + RxCocoa绑定ViewModels和Views。现在我面临一个问题,我自己找不到任何解决方案。下载图像后使用MVVM重新载入UITableView行
我有一个ViewModels列表,我想在UITableView中显示。在tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath)
方法中,我将一个单元出队,并将列表中的一个ViewModel绑定到这个单元。 ViewModel有imageUrl
变量,我使用Kingfisher下载这个图像,并将其放入该单元格中的ImageView。
所以这里是我现在的问题:当下载完成后,我必须重新加载此行,以便自动布局将计算其正确的高度。但是当我使用tableView.reloadRows(at: [indexPath], with: .none)
时,绑定被重新创建并且以无限循环结束(绑定 - >图像下载完成回调 - >重载行 - >绑定 - > ...)!
任何想法如何解决这个问题?
答
您不需要重新加载自动布局的行来计算高度(实际上,从不这样做)。 配置你的tableview有适应高度,你就完成了。
你可以找到这对https://www.raywenderlich.com/129059/self-sizing-table-view-cells
一个很好的例子,共享代码,请! –