#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 показался более простым решением.