2015-09-23 5 views
0

В моем приложении я загружаю фотографию ячейки прямо в cellforrowatindexpath, но она занимает основной поток в течение длительного времени, а когда я прокручиваю, мое приложение останавливается на некоторое время. Что мне делать? Если я добавлю асинхронный поток, он будет вызывать его каждый раз, когда я прокручиваю и могут быть два или более одинаковых запросов на загрузку фотографий, и это не хорошо ... Есть ли идея без спагетти-кодирования?Загрузка фотографий в uitableview асинхронно

+0

Запись 'IOS асинхронная загрузка изображений в виде таблицы' в google даст вам указатели на вашу проблему. –

ответ

2

рамки Try SDWebImage

https://github.com/rs/SDWebImage

Пример кода

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *MyIdentifier = @"MyIdentifier"; 

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier]; 

    if (cell == nil) 
    { 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault 
             reuseIdentifier:MyIdentifier]; 
    } 

    // Here we use the new provided sd_setImageWithURL: method to load the web image 
    [cell.imageView sd_setImageWithURL:[NSURL URLWithString:@"Get each url from array and set it here using indexpath.row"] 
         placeholderImage:[UIImage imageNamed:@"placeholder.png"]]; 

    cell.textLabel.text = @"My Text"; 
    return cell; 
} 

Он поддерживает различные функции, такие как кэширование и т.д.

+0

Используйте «https://github.com/JJSaccolo/UIActivityIndicator-for-SDWebImage», это поможет вам показать индикатор активности до тех пор, пока изображение не будет загружено. –

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