загружать изображения из Интернета в UIImageView внутри UITableView - PullRequest
3 голосов
/ 06 марта 2011

Как мне загрузить изображения с моего сайта в UITableView? Каков наилучший способ для производительности? И как справиться с перерисовкой изображений при повторном использовании ячеек таблицы?

А как я могу передать изображение из tableView в ячейку во время метода didSelect..Row?

Ответы [ 2 ]

2 голосов
/ 08 марта 2011

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

Ленивый TableImages

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

PS: Вы должны передать ссылку на изображение в xml, чтобы использовать этот код

0 голосов
/ 06 марта 2011

Возьмите количество пикселей, которое все изображения будут иметь вместе (в идеале, вы можете сделать небольшие изображения идеального размера на своем веб-сайте?), А затем умножьте на 4. Это количество байтов, с которыми вы имеете дело.Ради ваших пользователей, держите его на низком уровне!

Загружайте изображения в NSOperations синхронно (хотя в документах apple есть гораздо более сложные решения), в NSMutableDictionary, с ключом, являющимся url, и данными png или jpeg (илифактический UIImage) в качестве значения.Вам необходимо использовать @synchronize () для всего доступа к кэшированному словарю, так как вы будете обращаться к массиву из нескольких потоков.

Когда вы получаете предупреждение памяти, просто скажите в словарь удалить все элементы.(внутри блока синхронизации)

-(void)somememorywarning;
{
    @synchronized(gImageCacheDict)
    {
        [gImageCacheDict removeAllObjects];
    }
 }

Я оставляю данные ячейки таблицы документам и т. д., но вы не делаете это с помощью вызова didSelect ..

...