2012-01-31 4 views
0

У меня есть несколько вопросов относительно загрузки изображений на tableviews;Загрузка изображений асинхронно в таблицу

Я использую ASIHTTPRequest.

1.) У меня есть табличное представление, и мне нужно загрузить изображения на него. У меня есть изображения размером 100 КБ, 180 КБ, 450 КБ и 2 МБ. Я знаю, что эти изображения слишком большие, но я не могу контролировать это. Я вынужден загрузить эти изображения в виде таблицы. Когда я это делаю, он замедляет прокрутку и замедляет переход от представлений к представлениям. Итак, как я могу предотвратить это? любое решение?

2.) В настоящее время я использую SDWebImage, я не удовлетворен этой библиотекой, потому что она замедляет прокрутку и т. Д. (Даже когда я использую изображения, которые составляют менее 110 КБ). Мне нужна библиотека, которая может выполнять более быстрые действия?

ответ

1

Возможно, вам придется уменьшить изображение до размера изображения в фоновом режиме перед его отображением. Это определенно обойдется вам в несколько циклов процессора, но ускорит прокрутку. Я рекомендую среду ImageIO, потому что у нее нет проблем, запущенных в не основных потоках.

+0

Это лучший подход? Не могли бы вы разместить ссылку на примерный проект, в котором используется среда ImageIO, поэтому я мог бы лучше понять это. – Illep

+1

http://www.cocoabyss.com/coding-practice/uiimage-scaling-using-imageio/ –

+1

Это может быть не лучший подход в вашем конкретном случае, но вы должны попробовать его, чтобы посмотреть, как хорошо он работает для вас : http://stackoverflow.com/questions/5860215/resizing-a-uiimage-without-loading-it-entirely-into-memory – Costique

0

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

2mb действительно большой - вы не сможете загрузить это изображение в UITableViewCell, не видя какого-то рывка. Дело в том, что UIImageView занимает некоторое время, чтобы отобразить это изображение.

Если бы я был вами, я бы запустил ваше приложение через инструмент Time Profiler и посмотрел, сможете ли вы выяснить, какие строки кода занимают больше всего времени, чем в UITableView или UITableViewCells.

+0

Да, я попробую то, что вы предложили. Можете ли вы сообщить мне максимальный размер разрешенного изображения (лучший вариант) для отображения в tableView? – Illep

+0

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

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