Niestandardowy UITableViewCell z dużym UIImageView powodującym opóźnienie przewijania
Mam niestandardowy UITableViewCell, który składa się z UIImageView i UILabel. Komórka ma rozmiar 320x104px, a imageView zajmuje cały obszar z etykietą z przodu. Jest tylko 8 komórek.
w ViewDidLoad tworzę wszystkie potrzebne obrazy z góry i zapisuję je w słowniku w odpowiednich wymiarach.
Gdy przewijam UITableView, zauważalne jest opóźnienie za każdym razem, gdy napotykamy nową komórkę. Nie ma to dla mnie sensu, ponieważ używany obraz jest już utworzony i buforowany. Pytam tylko o komórkę, aby jej UIImageView renderował obraz.
Używam niestandardowej komórki z jej widokiem w xib i konfigurując mój UITableView, aby używał go z:
[self.tableView registerNib: [UINib nibWithNibName: @ "ActsCell" bundle: nil] forCellReuseIdentifier: myIdentifier];
Tworzenie i konfiguracja komórek:
<code>- (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]; } </code>
Co może powodować opóźnienie? Próba wykonania czegokolwiek Async wydaje się nie przynosić żadnych korzyści, ponieważ wykonywana jest cała czasochłonna praca.