我有一个 UICollectionview,里面有 4 个 UIImageview。这些用于在单元格上显示特定图标。不幸的是,当我有一个单元格用图像填充所有 4 个 ImageView 时,它可以正常工作。但是,当一个单元格只应显示少于 4 个项目时,它有时(并非总是)会显示其他图标。它似乎来自其他(以前的)细胞。就像它没有被正确回收一样。
这是我的代码。我有一个存储所有 ImageView 的 socket 。
@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
}
}
}
}
如您所见,我尝试了一切以确保 ImageView 在渲染之前为空,但它不起作用。有人知道我可能做错了什么吗?
最佳答案
Like its not recycled properly
没有。就像你没有正确回收它。 您的工作是在cellForItemAtIndexPath:
中完全配置此单元。该单元格可能已经被使用过,因此它可能已经有您之前放置在那里的 ImageView ;如果此索引路径的单元格应该具有较少的 ImageView ,则您的工作就是删除您不想要的图像。
关于swift - CollectionView 中的 UIImageView 未正确回收,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34970260/