UITableViewCell загрузить изображения - PullRequest
0 голосов
/ 23 сентября 2011

У меня есть 16 локально сохраненных предварительно отрендеренных изображений размером 40x40 пикселей, которые я хочу использовать в качестве своих изображений UITableViewCell.Я могу заставить его отображать их нормально, используя [UIImage imageNamed:];но я заметил, что это замедляет прокрутку табличного представления.

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

Кто-нибудь может помочь?

1 Ответ

1 голос
/ 16 ноября 2011

Создайте подкласс для ячейки UITableView и создайте в ней новый метод, который будет выглядеть примерно так:

- (void)setImage:(NSString *)imageName;

Затем, где вы использовали для установки изображения, измените его, чтобы вместо этого сделать что-то вроде:

[cell setImage:nil];
[cell performSelector:@selector(setImage:) withObject:@"imageName" afterDelay:0];

Изменение его на executeSelector: withObject: afterDelay: означает, что код для установки изображения не будет выполняться во время прокрутки tableView. Это должно привести к значительному улучшению производительности прокрутки, поскольку изображения не будут помещаться в ячейки до тех пор, пока прокрутка не прекратится.

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...