0

在我正在编写的应用程序中,我决定使用 MVVM 模式。我正在使用 RxSwift + RxCocoa 将 ViewModels 与 Views 绑定。现在我面临一个问题,我自己找不到任何解决方案。

我有一个要在 UITableView 中显示的 ViewModel 列表。在tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath)方法中,我将一个单元格出列,并将列表中的一个 ViewModel 绑定到该单元格。ViewModel 具有imageUrl变量,我使用 Kingfisher 下载此图像并将其放入该单元格中的 ImageView 中。

所以这是我现在的问题:下载完成后,我必须重新加载这一行,以便自动布局计算其正确高度。但是当我使用tableView.reloadRows(at: [indexPath], with: .none)绑定时,它会重新创建并以无限循环结束(绑定 -> 图像下载完成回调 -> 重新加载行 -> 绑定 -> ...)!

任何想法如何解决这个问题?

4

1 回答 1

0

您不需要为自动布局重新加载行来计算高度(实际上,永远不要这样做)。将您的 tableview 配置为具有自适应高度,您就完成了。

您可以在https://www.raywenderlich.com/129059/self-sizing-table-view-cells上找到一个很好的例子

于 2017-08-29T14:46:31.767 回答