Вам нужен протокол SDWebImageManagerDelegate.
https://github.com/rs/SDWebImage/blob/master/SDWebImage/SDWebImageManager.h#LC96
Я реализовал метод, который нам нужен в моем классе AppDelegate.
#pragma mark - SDWebImageManagerDelegate
-(UIImage*) imageManager:(SDWebImageManager *)imageManager transformDownloadedImage:(UIImage *)image withURL:(NSURL *)imageURL{
UIGraphicsBeginImageContextWithOptions(image.size, NO, [UIScreen mainScreen].scale);
CGRect box = CGRectMake(0, 0, image.size.width, image.size.height);
// Add a clip before drawing anything, in the shape of an rounded rect
[[UIBezierPath bezierPathWithRoundedRect:box
cornerRadius:15.f] addClip];
// Draw your image
[image drawInRect:box];
// Get the image, here setting the UIImageView image
UIImage* ret = UIGraphicsGetImageFromCurrentImageContext();
// Lets forget about that we were drawing
UIGraphicsEndImageContext();
return ret;
}
Youможет сказать sharedManager использовать ваш делегат следующим образом.
SDWebImageManager* imageManager = [SDWebImageManager sharedManager];
imageManager.delegate = self;
Я сделал это в didFinishLaunchingWithOptions.
Имейте в виду, что этот подход обрезает границы изображения в его исходном размере.Если границы вашего изображения визуализируются вне границ вашего вида (аспектное заполнение и т. Д.), Вы не увидите закругленные углы.
Этот подход более эффективен, чем обрезка изображения при каждом его рендеринге., но помните о вышеуказанном недостатке.