gpt4 book ai didi

ios - 下载图像后重新加载 UITableView 行(使用 MVVM)

转载 作者:行者123 更新时间:2023-11-30 12:11:59 27 4
gpt4 key购买 nike

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

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

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

有什么想法可以解决这个问题吗?

最佳答案

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

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

关于ios - 下载图像后重新加载 UITableView 行(使用 MVVM),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45941875/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com