UIImageView と UILabel で構成されるカスタム UITableViewCell があります。セルは 320x104px で、imageView はラベルが前にある領域全体を占めます。セルは 8 個しかありません。
ViewDidLoad では、必要なすべての画像を前もって作成し、正しい寸法で辞書にキャッシュしています。
UITableView をスクロールすると、新しいセルに遭遇するたびに顕著な遅延が発生します。使用している画像は既に作成されてキャッシュされているため、これは私には意味がありません。私がセルに求めているのは、その UIImageView が画像をレンダリングすることだけです。
カスタムセルをxibのビューで使用し、それを使用するように UITableView を構成しています:
[self.tableView registerNib:[UINib nibWithNibName:@"ActsCell" bundle:nil] forCellReuseIdentifier:myIdentifier];
セルの作成と構成:
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString* reuseIdentifier = @"ActsCell";
ActsCell* cell = [tableView dequeueReusableCellWithIdentifier:reuseIdentifier];
// Configure the cell...
[self configureCell:cell atIndexPath:indexPath];
return cell;
}
- (void)configureCell:(ActsCell *)cell atIndexPath:(NSIndexPath *)indexPath
{
Act* act = [self.acts objectAtIndex:indexPath.row];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
cell.title.text = act.name;
cell.imageView.image = [self.imageCache objectForKey:act.uid];
}
遅延の原因は何ですか? 時間のかかる作業はすべて完了しているため、Async を実行しようとしても何のメリットもないように思われます。