私はカスタムテーブルセルを描画してきました(Appleのサンプルをベースとして使用)が、URLから画像を表示するセルを作成する必要が生じました-各セルには異なる画像があります(あるデータに基づいて) )しかし、すべてのセルは同じであるため、同じ再利用IDです。
これを行うための正しい構造は何ですか? 明らかに、新しいスレッドに画像をロードする必要があります。これまでのところ、独自のスレッドで実行されるセルビュークラスに次の関数があります。
- (void)loadImage
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
self.img = [UIImage imageWithData: [NSData dataWithContentsOfURL: [NSURL URLWithString: [myProduct objectForKey:@"ImagePath"]]]];
[self setNeedsDisplay];
[pool release];
}
これを drawRect 関数自体から呼び出すと (これは悪いことです)、「動作」しますが、これは明らかに何かが発生するたびに呼び出されます (選択など)。それをセルの uiview の init 関数に入れると、最初の 8 つのセルに対してのみ呼び出され、その後再利用されます。他のバリエーションでは、セルが再利用されたときに画像が「リセット」されないため、同じ 8 つの画像がテーブルの下に繰り返されます (ただし、他のテキストは更新されます)。
今のところキャッシュについて心配していませんが、これを行う方法のサンプルはありますか、誰かが私を正しい方向に向けることができますか? ありがとう。