Поскольку UITableViewCell можно использовать повторно, при прокрутке табличного представления ячейки вне портов представления будут ставиться в очередь для повторного использования и удаляться из табличного представления. Поэтому постарайтесь, чтобы ячейки можно было повторно использовать только на пути индекса:
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *cellIdentifier = [NSString stringWithFormat:@"Cell_%d_%d", indexPath.section, indexPath.row];
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithReuseIdentifier:cellIdentifier] autorelease];
}
...
return cell;
}
Еще не проверено, попробуйте. Да, это будет занимать гораздо больше памяти, делайте это только с целью скриншота.
Редактировать: если вы заботитесь об использовании памяти, возможно, вы можете сделать снимок экрана текущего порта просмотра, затем программно прокрутить вверх и вниз, чтобы сделать другие части снимков экрана, и объединить все снимки экрана, наконец.