Если вы хотите избежать переработки ячеек таблицы, вы можете просто избежать вызова dequeueReusableCellWithIdentifier:
в вашем методе tableView:cellForRowAtIndexPath:
.
Если вы хотите выполнить однократную первоначальную загрузку всех ваших ячеек, выможет сделать что-то подобное в методе init источника данных вашей таблицы:
// myCellArray is an instance var of type NSMutableArray.
myCellArray = [NSMutableArray new];
for (int i = 0; i < 25; ++i) {
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:i inSection:0];
UITableViewCell *cell = [self tableView:tV cellForRowAtIndexPath:indexPath];
[myCellArray addObject:cell];
}
Это сохранит ячейки в памяти, поскольку они будут сохранены для вас myCellArray
.
Чтобы быть более эффективным, ваш cellForRowAtIndexPath:
метод может выглядеть примерно так:
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath {
if ([myCellArray count] > indexPath.row) {
return [myCellArray objectAtIndex:indexPath.row];
}
return [self createCellAtRow:indexPath.row];
}
Однако вы хотите быть осторожнее с использованием большего количества памяти, чем считаете нужным, и избегать слишком много времени на инициализациютвой стол.Во многих случаях ваше приложение может отображаться быстрее и использовать меньше памяти, если вы просто используете переработанные ячейки стандартным способом (как предлагается, например, в документах UITableViewDataSource ).