Используя общий шаблон «повторного использования»:
- (UITableViewCell *)tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *cellId = @"Foo";
UITableViewCell *cell = [tv dequeueReusableCellWithIdentifier:cellId];
if (!cell) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellId]
autorelease];
}
// update the cell content
return cell;
}
В табличном представлении создается столько ячеек, сколько требуется для заполнения его высоты кадра.
При исчезновении с экрана они удаляются из вида иположить в очередь повторного использования, таким образом, не освобождается.
Все ячейки освобождаются, когда tableView освобождается, и некоторые ячейки могут быть освобождены при изменении количества строк (скажем, у вас было 20 ячеекдо и только 2 после обновления).
У вас может возникнуть соблазн избавиться от повторного использования ячеек, но вы потеряете всю магию, проделанную за этим, чтобы сохранить небольшой объем памяти и иметь плавную прокрутку.