1

2 つの画像ビューを持つテーブル ビュー セルがあります。1 つの画像ビューはプレースホルダーで、もう 1 つの画像の上には、ドキュメント ディレクトリからロードした実際の画像があります。テーブル ビューでセルを再利用すると、画像が正しく表示されないという問題があります。

cell クラスで以下のメソッドを使用して問題を解決しましたが、これによりパフォーマンスの問題が発生する可能性があることを読みました。より良い解決策についてのアイデアはありますか?

- (void)prepareForReuse
{
    [[self imageView] setImage:nil];
}
4

2 に答える 2

0

この画像ビューの背後にプレースホルダー画像があるため、上部の画像ビューの画像を nil に設定しても問題はありません。

画像生成プロセスを強化するために、次のような NSCache オブジェクトを使用できます。

1)

@property(nonatomic, strong) NSCache *imageCache;


2) tableView cellForRowAtIndexPath:メソッド内でこのメソッドを呼び出すと、画像生成プロセスをこの中に移動できます。

-(UIImage *) imageForIndexPathRow:(int) row{

    id image = [self.imageCache objectForKey:[NSNumber numberWithInt:row]];

    if(!image){//if the image is not in the cache,

        UIImage *newImage; //create image here

        [self.imageCache setObject:newImage forKey:[NSNumber numberWithInt:row]];

        return newImage;
    }

    return (UIImage *) image;
}
于 2013-05-11T16:15:28.187 に答える