0

我有一个包含带有图像的单元格的 Tableview,但是被重用的单元格仍然包含来自前一个单元格的图像,该图像被重用,直到新图像被下载和设置。

我尝试将图像设置为零。(imageV 是 HJManagedImageV 的子类,源代码可以在这里找到:HJManagedImageV

[cell.imageV setImage:nil];

二传手

-(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 设置为 hidden,但随后我丢失了加载微调器,我真的很想知道为什么将其设置为 nil 不起作用。

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

4

2 回答 2

3

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

希望这会有所帮助=)

于 2012-05-17T10:18:33.663 回答
1

不要将它设置为 nil,也不要隐藏它。我们使用一个类似的类,我们对这种情况所做的就是设置一个要显示的起始图像,直到新图像加载。因此,在您的情况下,您可以简单地将图像设置为捆绑包中的空白 jpg/png 而不是 nil

于 2012-05-17T10:20:20.790 回答