ios - 从数据库获取图像后更新像元高度

标签 ios swift uitableview

我正在尝试从数据库异步加载图像后更新表格 View 单元格的高度。 用例是: 当单元格可见时获取图像。所以我必须在单元格中调用 `loadImageWith(callBack: () -> ()) 。 当我收到回调时,我想用图像更新特定单元格。 对于图像,没有占位符等。因此,如果没有可用图像,则单元格为空。

我已尝试调用
self.tableView.beginUpdates() self.tableView.reloadRows(at: [indexPath], with: UITableViewRowAnimation.fade) self.tableView.endUpdates()
在回调中就像在其他线程中描述的那样,但显然这会导致无限循环。 我也尝试调用cell.needsLayout或/和cell.layoutIfNeeded将图像添加到 ImageView 后。 对行没有影响。

我没有使用任何第三方库,因为我需要从本地数据库而不是服务器获取图像数据。

如果我在 viewDidLoad 中加载所有图像并调用
self.tableView.reloadRows(at: [indexPath], with: UITableViewRowAnimation.fade)
然后它就可以工作,但要求是仅加载可见单元格。

希望任何人都能解决这个问题。

最佳答案

您可以将图片上传后单元格的高度设置为

self.tableView.beginUpdates()
 self.tableView.reloadRows(at: [indexPath], with: UITableViewRowAnimation.fade)
let selectedCell = tableView.cellForRow(at: indexPath) 
selectedCell.height = yourHeight
self.tableView.endUpdates()

关于ios - 从数据库获取图像后更新像元高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42034806/

相关文章:

objective-c - 核心数据和实体数n "Person"

ios - 相同 Double 值的奇怪输出

ios - 如何更新 iOS 中覆盖 supportedInterfaceOrientations 函数的旧 Swift 代码?

ios - 尝试将第 3 行插入第 0 节,但更新后第 0 节中只有 3 行

ios - 带有自定义 UITableViewCell 的 UITableView 不显示单元格

ios - 快速更改 uiimageview 背景颜色

ios - 检查 Objective-C 框架支持的架构

swift - 通过今天的扩展打开主应用程序

ios - 如何自动缩放 mapView 以显示覆盖

swift - 如何将一个复杂的抽象类移植到swift?