Ищем противоположность tableView: willDisplayCell: forRowAtIndexPath: чтобы определить, когда ячейка отображается как «un» - PullRequest
1 голос
/ 24 июля 2011

Есть ли способ определить, когда ячейка табличного представления выходит за пределы экрана? Противоположность tableView: willDisplayCell: forRowAtIndexPath: так же, как tableView: willHideCell: forRowAtIndexPath: было бы здорово, но, очевидно, его не существует.

Причина, по которой я хотел бы обнаружить это, заключается в том, что всякий раз, когда отображается новая ячейка, я загружаю изображения для размещения в этой ячейке, но если пользователь просто прокручивает ячейку и не просматривает ее, я хотел бы отменить загрузку этих изображений.

Ответы [ 4 ]

1 голос
/ 24 июля 2011

Просто сделайте это после удаления ячейки из таблицы.Как только ячейка появится на экране, она будет снова использована.

1 голос
/ 24 июля 2011

В большинстве случаев вам это не понадобится, поскольку в табличном представлении обычно всегда отображается одинаковое количество ячеек, поэтому ячейка, которая выходит за пределы экрана, будет сразу же повторно использована, и в этом случае самый простой способ - отменить загрузка после удаления ячейки.

Если у вас много разных идентификаторов ячеек, это может быть не так. Один из способов, который я мог бы придумать, это переопределить willMoveToSuperview: в вашем подклассе UITableViewCell и проверить параметр superview для nil (что означает, что он был удален из иерархии представления).

0 голосов
/ 02 октября 2016
0 голосов
/ 24 июля 2011

Не совсем то, что вы просите, но если вы посмотрите на образец LazyTableImages от Apple, они откладывают запуск загрузки изображения до окончания прокрутки:

if (self.tableView.dragging == NO && self.tableView.decelerating == NO)
{
    [self startIconDownload:appRecord forIndexPath:indexPath];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...