我有一个UICollectionViewController和一些单元格(UICollectionViewCell)。我想在一些细胞上画图像。这工作正常,但是当我滚动时,一些单元格似乎被不必要地重复使用,换句话说,我没有明确绘制的单元格被绘制(仅在滚动之后)。
在我的单元格中,我执行以下操作:
imageView = UIImageView(frame: CGRectMake((self.bounds.size.width/4)-1, (self.bounds.size.height/4)-1, 30, 30));
imageView!.image = imageTick
self.addSubview(self.lblDay)
self.addSubview(imageView!)
我创建了一个图像视图并设置了它的图像,然后添加了标签和图像视图。
有人看到我做错了吗?
就完整性而言,这里是我如何初始化单元格的图像:
let imageTick:UIImage = UIImage(named: "star")!
var imageView:UIImageView? = nil
答案 0 :(得分:2)
UICollectionViewCell
被系统重用,因此您需要通过清除单元格中的所有内容来处理prepareForReuse
UICollectionViewCell
方法中重用单元格的可能性(设置图像为零等。)
Here is the doc for UICollectionReusableView that declares that
Here is the doc for UICollectionView您可以在该文档中看到,对于方法dequeueReusableCellWithReuseIdentifier:forIndexPath:
,如果有可用的单元格可以重用,则会讨论调用prepareForReuse
。