我正在使用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存储库

09-10 07:33
查看更多