メソッド内でインターネットから小さな画像(たとえば、60 x 60)をフェッチする場合:
-(UITableViewCell *) tableView:(UITableView *) tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath { ... }
行数が25に固定されている場合と、長さを可変(たとえば、100、または1000)にできる場合はどうなりますか?セルを「再利用」するために使用する場合dequeueReusableCellWithIdentifier
、おそらくこのセルのサブビュー(そのうちの1つは60 x 60の画像)を削除する必要があるため、ユーザーがリストを上下にスクロールすると、セルが再利用されます。 、画像はネットから再取得され、スクロール中にあちこちで一時停止することができます。
しかし、を削除しdequeueReusableCellWithIdentifier
て常に新しいセルを割り当てると、次のようになります。
cell = [[UITableViewCell alloc]
initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:TableViewCellIdentifier];
次に、上下にスクロールするとNSLog
、画像がまだフェッチされていることが示されます。フェッチされた画像を格納するために配列を個別に使用したくない場合、それを防ぐ方法はありますか?
(現在、動作は最初に約7つの画像がフェッチされ、テーブルを3行下にスクロールすると、3つの画像がフェッチされ、テーブルを3行上にスクロールすると、3つの画像が再度フェッチされます)