0

我正在回收其中包含 UIImageViews 的 UIViews。因此,当其中一个被重新使用时,我要做的第一件事就是清除它显示的旧图像。我似乎无法让它工作。我目前的代码是:

[self.imageView removeFromSuperview];
self.imageView = nil;

然后我重新分配/初始化UIImageViewUIImage等等。这似乎没有奏效。旧图像出现,然后新图像出现在它上面。我还需要做什么来清除旧图像?

谢谢。

4

2 回答 2

2

如果你正在释放你的 UIImageView,你会失去很多回收视图的好处,因为你只是在重建它们。

当您回收 UIView 时,请确保将 UIImageView 的image属性设为 nil - 这样,当 UIView 处于回收状态时,您不会保留 UIImage - 这样做没有意义。

当您将 UIView 从回收中取出以重新使用它时,图像应该已被清除,您可以使用新的图像数据重置 UIImageView 的图像属性。此时您应该会看到新图像。

于 2012-05-14T18:39:29.843 回答
0

的演示模型可能很脏UIViewCALayer尝试:

[self setNeedsDisplay]; //force refresh
于 2012-04-25T14:27:39.580 回答