UIImageView.hidden和UIImageView.image = nil之间的区别

时间:2016-08-29 07:56:20

标签: ios performance uiimageview

在我看来,我有多个视图(UICollectionViewCell s),根据模型,可以包含UIImageView作为子视图(每个视图都有一个单独的实例)。

对于我的情况,未显示UIImageView的视图数量超过显示它的视图。

我可以选择在希望视图显示图像时调用UIImageView.hidden = false,或者在图像视图内设置图像,即UIImageView.image = UIImage(named: ...)

我想知道,对于内存和速度问题,这是一种性能更高的方法吗?我觉得差异不够大,尤其是UIImage(named:)的缓存,但我确实想知道。

2 个答案:

答案 0 :(得分:2)

  1. 如果你设置UIImageView.image = nil,那么当然一个图像在内存中,它会被释放(如果重复使用就重新分配),所以我建议你一直这样做

  2. 如果您想确保UIImageView.image(1)不可见,(2)不会占用frame中的cell,并且(3)将并不意味着渲染时间,然后还设置UIImageView.hidden = true

  3. 我建议采取这两种行动。在我看来,这里的表演不是问题(考虑到你的图像里面只有很少的单元格)

答案 1 :(得分:0)

nil - 此操作意味着imageview分配的内容将从内存中释放。

隐藏 - imageview仍然指向该内存位置,但它已隐藏在其父视图中。