TableView中重用单元格中的图像未从ImageVIew中清除

时间:2012-05-17 10:11:45

标签: iphone ios uitableview

我有一个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不起作用。

任何人都有任何想法,因为我全都没有。或者我在某处错过了一步。

2 个答案:

答案 0 :(得分:3)

单元格是UITableViewCell的子类吗?如果是,我会尝试实施方法 prepareForReuse ,看看能否解决问题。

希望这有助于=)

答案 1 :(得分:1)

不要将其设置为nil,也不要隐藏它。 我们使用类似的类,我们为这种情况做的是设置一个开始图像,直到新图像加载为止。 所以在你的情况下你可以简单地将图像设置为你的包内的空白jpg / png而不是nil