我正在回收其中包含 UIImageViews 的 UIViews。因此,当其中一个被重新使用时,我要做的第一件事就是清除它显示的旧图像。我似乎无法让它工作。我目前的代码是:
[self.imageView removeFromSuperview];
self.imageView = nil;
然后我重新分配/初始化UIImageView
,UIImage
等等。这似乎没有奏效。旧图像出现,然后新图像出现在它上面。我还需要做什么来清除旧图像?
谢谢。
我正在回收其中包含 UIImageViews 的 UIViews。因此,当其中一个被重新使用时,我要做的第一件事就是清除它显示的旧图像。我似乎无法让它工作。我目前的代码是:
[self.imageView removeFromSuperview];
self.imageView = nil;
然后我重新分配/初始化UIImageView
,UIImage
等等。这似乎没有奏效。旧图像出现,然后新图像出现在它上面。我还需要做什么来清除旧图像?
谢谢。
如果你正在释放你的 UIImageView,你会失去很多回收视图的好处,因为你只是在重建它们。
当您回收 UIView 时,请确保将 UIImageView 的image属性设为 nil - 这样,当 UIView 处于回收状态时,您不会保留 UIImage - 这样做没有意义。
当您将 UIView 从回收中取出以重新使用它时,图像应该已被清除,您可以使用新的图像数据重置 UIImageView 的图像属性。此时您应该会看到新图像。
的演示模型可能很脏UIView
。CALayer
尝试:
[self setNeedsDisplay]; //force refresh