集合视图中的UIImageViews无法正确回收

时间:2016-01-23 23:29:09

标签: swift uiimageview uicollectionview

我有一个UICollectionview里面有4个UIImageviews。这些用于在单元格上显示特定图标。不幸的是,当我有一个单元格用图像填充所有4个图像视图时,它可以正常工作。但是当一个单元格只显示少于4个项目时,它有时(因此并不总是)显示其他图标。它似乎来自其他(以前的)细胞。喜欢它没有正确回收。

这是我的代码。我有一个存储所有图像视图的插座。

@IBOutlet var savings: [UIImageView]!

接下来,我在Cell Viewcontroller中有一个方法,它根据给定的图标名称数组填充。

func setPropositions(propositions: [SupplierProposition])
{
    for (index, item) in propositions.enumerate() {
        if index < 4 {
            savings[index].image = nil
            savings[index].setNeedsDisplay()
            if let image = UIImage(named: item.iconName!) {
                savings[index].image = image
            } else {
                savings[index].image = nil
            }
        }
    }
}

如你所见,我尝试了一切以确保在渲染之前图像视图为空,但它不起作用。谁知道我可能做错了什么?

1 个答案:

答案 0 :(得分:1)

  

喜欢它没有正确回收

没有。这就像没有正确回收它。 此单元格可能已经被使用过,因此它可能已经包含了您之前放置的图像视图;如果索引路径的单元格应该具有较少的图像视图,则 作业将删除您不想要的作业。