SDWebImage — метод выполнения задач, когда setImageWithURL завершает загрузку

#objective-c #ios #sdwebimage

#objective-c #iOS #sdwebimage

Вопрос:

Точно так же, как сказано в названии. Учитывая:

 [imageView setImageWithURL:[NSURL URLWithString:imageurl]];
 

Каков наилучший способ выполнения задач после загрузки (или извлечения из кэша) и отображения изображения?

Ответ №1:

setImageWithURL API — это очень удобный метод, но вам нужно немного больше контроля, поэтому я предлагаю загрузить изображение самостоятельно с помощью (сильно вдохновленный https://github.com/rs/SDWebImage/blob/master/README.md ):

 SDWebImageManager *manager = [SDWebImageManager sharedManager];
UIImage *cachedImage = [manager imageWithURL:url];

if (cachedImage) {
    [imageView setImage:cachedImage];
    [self doMyOtherCustomStuff];
} else {
    [manager downloadWithURL:url delegate:self];
}
 

 - (void)webImageManager:(SDWebImageManager *)imageManager didFinishWithImage:(UIImage *)image
{
    [imageView setImage:image];
    [self doMyOtherCustomStuff];
}
 

удачи!

Комментарии:

1. Хотел бы я отметить оба как решения. На самом деле это более полно отвечает на мои вопросы.

Ответ №2:

Одним из вариантов является реализация SDWebImageManagerDelegate протокола. В SDWebImage документации есть пример.

Другой вариант — использовать KVO и следить за image включением свойства imageView .

Комментарии:

1. Спасибо, я полностью пропустил SDWebImageManagerDelegate при сканировании документации… однако KVO показался более простым решением.