UITableView dequeueReusableCellWithIdentifierを使用します。
これは基本的に、テーブル セルを毎回ゼロから再作成する必要がないことを意味します。セルに再利用識別子を指定すると、そのセルがメモリに保持され、その識別子に一致するセルを要求したときにセルをデキューできます。
すべてのセルには一意の画像があるため、各セルの一意の識別子を画像から何か (おそらく画像の URL またはファイル名) として設定するのがおそらく最善でしょう。これは、セルを破棄して再作成するよりも多くのメモリを消費しますが、スクロール ラグが減少し、画像が小さい場合、メモリ フットプリントはそれほど大きくありません。
あなたはおそらく次のようなものになるでしょう:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *imageURL = urlOfImageForThisCell;
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:imageURL];
if(!cell)
{
cell = [self makeNewCell];
//if your reuseIdentifier is unique to each image, you only ever need to set it's image here
cell.image = imageForThisCell;
cell.reuseIdentifier = imageURL;
}
//additional cell setup here
return cell;
}
また、UITableViewCell をサブクラス化し、prepareForReuse をオーバーライドすることも検討してください。