我的UIImageView
扩展名是从后台的给定网址下载图片。我正在使用它来获取UITableViewCell
的图像。成功下载后,我正在调用self.setNeedsLayout()
,但它不刷新单元格的布局,因为此方法仅更新调用者子视图的布局。我试图使用self.superview.setNeedsLayout()
甚至self.window.setNeedsLayout()
。它不起作用,它说这两种观点都是零。你有什么想法我可以从它的childView刷新UITableViewCell
布局吗?我们正在谈论泛型UITableViewCell
,我想避免创建新类只是为了在这种情况下使布局工作,我想在其他我只有UIImageView
不在表内的地方使用这个扩展视图。可以通过简单的扩展来实现吗?现在我有正在下载的自定义UITableViewCell
,设置图片,然后它正在调用self.setNeedsLayout()
并且它可以正常工作。
答案 0 :(得分:0)
请考虑使用SDWebImage等库,以便异步下载图像。我认为它可以解决你的问题并改善表现。
修改:
来自SDWebImage
文档:
它提供:
- 添加网络图片和缓存的UIImageView类别
- 异步图片下载器
- 使用自动缓存到期处理的异步内存+磁盘映像缓存
- 保证不会多次下载相同的网址
- 保证不会一次又一次地重试虚假网址
- 保证主线程永远不会被阻止
- 性能!
- ...