【发布时间】:2017-11-24 10:09:24
【问题描述】:
我有自定义 UITableViewCell:
还有一些带有 imageURL 属性的对象(从服务器获取)。
任务:需要异步下载图像(通过 Kingfisher)。如果图像不存在 - 隐藏 ImageView。 有些工作正常,但是:
当图像开始下载(在后台)时,用户还可以滚动 tableView,如果图像未下载(图像 == nil),图像视图隐藏(需要隐藏/显示)和滚动视图中的 contentSize 发生变化。 - 问题第一(滚动跳转)
SECOND:当用户滚动填充的 tableView 时,一些单元格没有图像,当这个单元格被重用时,Kingfisher 也尝试为重用的单元格下载图像。如果图像存在 - imageView 显示,并且单元格像展开一样。 滚动视图的 contentSize 再次发生了变化,结果我们出现了故障跳跃。
附:尝试使用表更新,重新加载行,也使用不同的单元格作为空单元格 - 不成功。还尝试在 SO 中找到解决方案,但仅资助理论 :)
有想法(不仅仅是理论)?
谢谢
附言基于图像的硬编码单元格大小(有或没有)。并更改约束 imageView(0 或 xxx)。如果理解正确 - tableView 不知道单元格大小(因为设置了 UITableViewAutomaticDimension)
不是很好的解决方案,但有效。
【问题讨论】:
标签: ios swift uitableview swift3 swift2