2016-12-30 2 views
0

Im используя код SDWebImage, чтобы загрузить изображение из Интернета. Im делая это в Xcode 8 и Swift 3.Завершение SDWebImage Блок

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

Итак, мой вопрос в том, есть ли способ иметь блок завершения для выполнения некоторого кода при загрузке изображения? Я не могу найти информацию о проекте github о завершении загрузки.

Спасибо!

ответ

2

Я нашел его! Отправьте его, если кому-то это понадобится.

Я это используется для загрузки из Интернета

imgView.sd_setImage(with: URL(string: news.imageURL)) 

Но для нагрузки и имеет завершающий блок мне нужно сделать:

imgView.sd_setImage(with: URL(string: news.imageURL)) { (image, error, cache, url) in 
      // Your code inside completion block 
     } 
3

Вот код прямо из одного из примеров файлов SDWebImage, вы можете найти больше примеров здесь: https://github.com/rs/SDWebImage/tree/master/Examples

Swift Версия:

imageView.sd_setImageWithURL(NSURL(string: urlString), completed: { 
       (image, error, cacheType, url) in 
       // your code 
      }) 

Objective-C Версия:

- (void)configureView 
{ 
    if (self.imageURL) { 
     __block UIActivityIndicatorView *activityIndicator; 
     __weak UIImageView *weakImageView = self.imageView; 
     [self.imageView sd_setImageWithURL:self.imageURL 
          placeholderImage:nil 
            options:SDWebImageProgressiveDownload 
            progress:^(NSInteger receivedSize, NSInteger expectedSize, NSURL *targetURL) { 
             if (!activityIndicator) { 
              [weakImageView addSubview:activityIndicator = [UIActivityIndicatorView.alloc initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray]]; 
              activityIndicator.center = weakImageView.center; 
              [activityIndicator startAnimating]; 
             } 
            } 
           completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) { 
            [activityIndicator removeFromSuperview]; 
            activityIndicator = nil; 
           }]; 
    } 
} 

Надеюсь, это поможет.

+1

Привета, у вас есть этот код на Swift? –

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