2009-11-03 4 views
0

Фон: У меня есть UITableView, показывающий изображение в каждой ячейке. Эти изображения являются частью большого pdf-файла. Итак, что я делаю, это на самом деле рендеринг небольших частей PDF в этих UITableViewCells, причем каждая ячейка отображает только одну часть. Поэтому я добавляю UIView к содержимому ячейки и визуализирую представление по требованию. Рендеринг этих pdf-деталей является дорогостоящим, и каждый занимает около 0,2 секунды (только рисование Pdf-части), что замедляет прокрутку таблицы ужасно.Как реализовать задержанную загрузку UIImageView в UITableView

Идея: Теперь я знаю, что может быть решение, когда я смотрю, как UIImage отображает изображения на основе URL. Если вы создаете UIImage на основе URL-адреса, эти изображения будут как-то задерживаться. Например, посмотрите iTunes-приложение. Возможна плавная прокрутка, каждое изображение отображается незагруженным, а после завершения рендеринга оно отображается плавно.

Проблема: Как я могу рендерить дорогостоящий рендеринг в UITableViewCell, как описано выше, каким-то образом показывая задержку соты? У кого-нибудь есть идея, как Apple решила ее в UIImageView?

Заранее спасибо

Daniel

ответ

0

это (в основном) дубликата Lazy load images in UITableViewCell. Проверьте ссылки и примеры там.

Вкратце, вам нужно создать отдельную нить для загрузки миниатюр PDF и этот поток, а затем передать основной поток сгенерированными изображениями. Это легко сделать, используя методы performSelectorInBackground:withObject: и performSelectorOnMainThread:withObject:waitUntilDone:.

+0

Привет спасибо за подсказку для повторяющегося сообщения. Я этого не видел. Решение, хотя и не удовлетворяет меня. Накопление памяти велико, если вы думаете, сколько кеша я должен создать в _advance_. И мои изображения такие же большие, как и весь экран. Я просто нашел решение, которое кажется очень многообещающим: я использую CATiledLayer! Если вы делегируете рисунок в слое, вся фоновая потоковая обработка выполняется системой. Все, что вам нужно сделать, это переместить рисунок из представления в слой. – user201631

+0

Можете ли вы привести пример этого? – Jordan

Смежные вопросы