La risposta di @jrturtons è corretta ma sfortunatamente c'è un errore in iOS 5 (risolto in iOS 6) in combinazione con VoiceOver: rdar://11549999. La seguente categoria su UITableView
risolve il problema. Basta usare -fixedDequeueReusableCellWithIdentifier:
invece del normale dequeueReusableCellWithIdentifier:
. Naturalmente, il NIB deve essere registrato utilizzando
[self.tableView registerNib:[UINib nibWithNibName:@"Cell" bundle:nil] forCellReuseIdentifier:@"Cell"];
prima (in -viewDidLoad
).
UITableView + Workaround.m:
@implementation UITableView (Workaround)
- (id)fixedDequeueReusableCellWithIdentifier:(NSString *)identifier {
id cell = [self dequeueReusableCellWithIdentifier:identifier];
if (!cell) {
// fix for rdar://11549999 (registerNib… fails on iOS 5 if VoiceOver is enabled)
cell = [[[NSBundle mainBundle] loadNibNamed:identifier owner:self options:nil] objectAtIndex:0];
}
return cell;
}
@end
fonte
2012-12-14 15:40:14
controlla questo link: http://useyourloaf.com/blog/2011/2/28/speeding-up-table-view-cell-loading -with-uinib.html Questo dovrebbe iniziare! :) –