Как уже говорили другие, вы должны убедиться, что вы правильно утилизируете ячейки и не уничтожаете вещи, которые вам понадобятся в любом случае при повторном использовании ячейки.
Но, возможно, вы захотите освободить другие активы, которыеклетка или ее взгляды сохраняются.Или, если в этой ячейке есть ожидающие запросы на загрузку, например, вы можете сбросить их приоритет или даже отменить их, когда ячейка находится за пределами экрана.
Я думаю, что самый простой способ сделать это - просто переопределить -[UITableViewCell prepareForReuse]
Вызывается, когда ячейка возвращается в очередь повторного использования.Если пользователь быстро перемещается вверх и вниз по таблице, вам может не потребоваться очистить ячейку в тот момент, когда ячейка находится вне экрана (например, посмотрев на indexPathsForVisibleRows)
Но когда ячейка фактически помещается обратно в очередь повторного использования, это подходящее время для выполнения этой работы, поскольку вы знаете, что ячейка больше не появится на экране, пока вы не отключите ее и не настроите ее снова.