0

画像を含むセルを含むテーブルビューがありますが、再利用されるセルには、新しい画像がダウンロードされて設定されるまで、再利用される前のセルの画像が含まれています。

画像をnilに設定しようとしました。(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 を非表示に設定することによる回避策がありますが、読み込みスピナーが失われ、nil に設定しても機能しない理由を知りたいです。

誰もが何かアイデアを持っています。または、どこかでステップが欠落していますか。

4

2 に答える 2

3

セルはUITableViewCellのサブクラスですか?はいの場合、prepareForReuseメソッドを実装して、そこで問題を解決できるかどうかを確認します。

これがお役に立てば幸いです=)

于 2012-05-17T10:18:33.663 に答える
1

nil に設定したり、隠したりしないでください。同様のクラスを使用し、そのような場合に行うことは、新しい画像が読み込まれるまで表示される開始画像を設定することです。したがって、あなたの場合、画像を nil ではなく、バンドル内の空白の jpg/png として設定するだけです

于 2012-05-17T10:20:20.790 に答える