UITableView - загрузка больших UIImages из NSBundle без блокировки основного потока - PullRequest
1 голос
/ 28 сентября 2011

В UITableViewController пользовательский интерфейс зависает при вызове этого метода: - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

где изображение загружается в UITableViewCell.

cell.imageView.image = [UIImage imageWithContentsOfFile:@"filePath"];

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

* изображения около 500 тыс.

Нужна помощь. Спасибо.

1 Ответ

0 голосов
/ 28 сентября 2011

Например, создайте отдельный поток, куда вы будете загружать изображения и сохранять ссылку на них в некотором array. Когда все изображения будут подготовлены (или какая-то их часть), вы можете reload cell s, которые должны содержать эти сообщения.

В table view controller вы должны проверить, загружен ли image для этого cell, и просто взять ссылку и установить cell.imageView.image вместе с ним.

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