我有一个Tableview包含带有图像的单元格,但是重复使用的单元格仍然包含上一个单元格中的图像,该图像将被重复使用,直到下载并设置新图像为止。
我尝试将图片设置为nil。 (imageV是HJManagedImageV的子类,源代码可以在这里找到:HJManagedImageV
[cell.imageV setImage:nil];
setter
-(void)setImage:(UIImage *)theImage{
if (theImage==image) {
//when the same image is on the screen multiple times, an image that is alredy set might be set again with the same image.
return;
}
[theImage retain];
[image release];
image = theImage;
[imageView removeFromSuperview];
self.imageView = [[[UIImageView alloc] initWithImage:theImage] autorelease];
[self addSubview:imageView];
[imageView setNeedsLayout];
[self setNeedsLayout];
[loadingWheel stopAnimating];
[loadingWheel removeFromSuperview];
self.loadingWheel = nil;
self.hidden=NO;
if (image!=nil) {
[callbackOnSetImage managedImageSet:self];
}
}
我有一个解决方法,通过将imageV设置为隐藏,但后来我失去了加载微调器,我真的很想知道为什么将它设置为nil不起作用。
任何人都有任何想法,因为我全都没有。或者我在某处错过了一步。
答案 0 :(得分:3)
单元格是UITableViewCell的子类吗?如果是,我会尝试实施方法 prepareForReuse ,看看能否解决问题。
希望这有助于=)
答案 1 :(得分:1)
不要将其设置为nil,也不要隐藏它。 我们使用类似的类,我们为这种情况做的是设置一个开始图像,直到新图像加载为止。 所以在你的情况下你可以简单地将图像设置为你的包内的空白jpg / png而不是nil