我正在使用SDWebImage从URL加载图像。
以下是我的代码:
if let imageUrl = URL(string: carouselItem.imagesArray[0]) {
itemImageView.sd_setImage (with: imageUrl,placeholderImage: UIImage(named: "ImagePlaceorder"))
} else {
itemImageView.image = UIImage(named: "ImagePlaceorder")
}
图片未加载,因为URL中有空格。我不想对每个单独的URL进行编码,我想为图像加载器本身设置一个编码器,以便SDWebImage在下载图像之前对URL进行编码。
如何将URL编码器设置为SDWebImage?
最佳答案
由于他们没有这种可能性,因此您有几种解决方法。
由于它们的方法是在UIImageView的扩展名中声明的,因此您无法覆盖它们(Swift doc)。但是您可以为子类执行此操作:
class ImageVIew: UIImageView {
override open func sd_setImage(with url: URL?, placeholderImage placeholder: UIImage?, options: SDWebImageOptions = [], completed completedBlock: SDExternalCompletionBlock? = nil) {
// Apply URL encoding
super.sd_setImage(with: newURL, placeholderImage placeholder, options: options, completed: completedBlock)
}
}
做一个分叉,添加一个公共属性,将MR推送到SDWebImage存储库