在我看来,我有多个视图(UICollectionViewCell
s),根据模型,可以包含UIImageView
作为子视图(每个视图都有一个单独的实例)。
对于我的情况,未显示UIImageView
的视图数量超过显示它的视图。
我可以选择在希望视图显示图像时调用UIImageView.hidden = false
,或者在图像视图内设置图像,即UIImageView.image = UIImage(named: ...)
。
我想知道,对于内存和速度问题,这是一种性能更高的方法吗?我觉得差异不够大,尤其是UIImage(named:)
的缓存,但我确实想知道。
答案 0 :(得分:2)
如果你设置UIImageView.image = nil
,那么当然一个图像在内存中,它会被释放(如果重复使用就重新分配),所以我建议你一直这样做
如果您想确保UIImageView.image
(1)不可见,(2)不会占用frame
中的cell
,并且(3)将并不意味着渲染时间,然后还设置UIImageView.hidden = true
我建议采取这两种行动。在我看来,这里的表演不是问题(考虑到你的图像里面只有很少的单元格)
答案 1 :(得分:0)
nil - 此操作意味着imageview
分配的内容将从内存中释放。
隐藏 - imageview
仍然指向该内存位置,但它已隐藏在其父视图中。