![](/img/trans.png)
[英]How to use SDWebImage to show images in tableview Swift?
[英]How to show SDWebimage for background Colour in Swift
SDWebImage是用于将URL转换为图像的出色库。 它的工作很棒。 但是,我有以下问题
//对于imageview,我们设置为
eventImageView.sd_setImage(with: URL(string: imageUrl), placeholderImage: UIImage(named: "placeholder.png")) // but, for Image as UIColor, Showing compiler error if I use like following self.scrollView.backgroundColor = UIColor(patternImage: sd_setImage(with: URL(string: imageUrl), placeholderImage:UIImage(named: "placeholder.png")))
甚至我也尝试跟随
let imageBG = sd_setImage(with: URL(string: image), placeholderImage: UIImage(named: "placeholder.png")) self.scrollView.backgroundColor = UIColor(patternImage: imageBG)
及其显示以下错误
使用未解析的标识符“ sd_setImage”
谁能建议我解决此问题?
首先需要使用SDWebImageManager
下载图像,然后在UIColor(patterImage:)
构造函数中使用它。 请尝试以下代码:
SDWebImageManager.shared().loadImage(with: URL(string: imageUrl), options: [], progress: nil, completed: { (image, data, error, cacheType, success, url) in
DispatchQueue.main.async {
guard let image = image else {
return
}
self.scrollView.backgroundColor = UIColor(patternImage: image)
}
})
发生这种情况是因为sd_setImage
是一个UIImageView方法( eventImageView
应该是UIImageView
), init(patternImage :)声明是:
init(patternImage image: UIImage)
这意味着patternImage
参数是UIImage
而不是 UIImageView
。
为了解决这个问题,你应该首先加载图像视图,一旦装做你可以指定颜色是image
的图像视图:
eventImageView.sd_setImage(with: URL(string: imageUrl), placeholderImage: UIImage(named: "placeholder.png")) { (image, error, cache, url) in
self.scrollView.backgroundColor = UIColor(patternImage: image)
}
或(不带占位符):
eventImageView.sd_setImage(with: URL(string: imageUrl)) { (image, error, cache, url) in
self.scrollView.backgroundColor = UIColor(patternImage: image)
}
sd_setImage(with
适用于UIImageView
将结构创建为-
struct ImageSetter {
static func setImage(scrollView: UIScrollView,myImageView: UIImageView,imageUrl: URL,placeHolderImage: UIImage){
myImageView.sd_setImage(with: imageUrl, placeholderImage: placeHolderImage, options: [], completed: { (imageBackground, error, cache, url) in
scrollView.backgroundColor = UIColor.init(patternImage: imageBackground ?? UIImage(named: "place-holder-image")!)
})
}
}
采用 -
ImageSetter.setImage(scrollView: scrollView, myImageView: testImageView, imageUrl: url, placeHolderImage: image)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.