swift - CollectionView 中的 UIImageView 未正确回收

标签 swift uiimageview uicollectionview

我有一个 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/

相关文章:

iphone - iOS 4.3 上的cameraOverlayView问题

ios - 如何放大 UICollectionView

ios - Swift:单击 UICollectionView 的单元格并打开 AlertViewController

ios - NSTimer 取消我的 UIView.animateWithDuration

ios - 在 UICollectionView swift 中获取单元格 onClick 的所有 subview

swift - 如何以编程方式将 9 个偶数图像添加到 View |Swift

ios - 以编程方式更改 UIImageView 框架大小

ios - Swift 3 将图像从 URL 添加到 UIImageView

swift - 我看不到 firebase swift 的值(value)

ios - 从字符串数组中获取 NSClassFromString - Swift