这就是我在做的事情。
extension UIImageView {
func downloadedFrom(url: URL, contentMode mode: UIViewContentMode = .scaleAspectFit) {
contentMode = mode
URLSession.shared.dataTask(with: url) { data, response, error in
guard
let httpURLResponse = response as? HTTPURLResponse, httpURLResponse.statusCode == 200,
let mimeType = response?.mimeType, mimeType.hasPrefix("image"),
let data = data, error == nil,
let image = UIImage(data: data)
else { return }
DispatchQueue.main.async() {
self.image = image
}
}.resume()
}
func downloadedFrom(link: String, contentMode mode: UIViewContentMode = .scaleAspectFit) {
guard let url = URL(string: link) else { return }
downloadedFrom(url: url, contentMode: mode)
}我在图像中检查了它,它的显示映像处于调试状态的预览状态。但在self.image = image之后
图像视图上的任何更改都不会显示。有人知道问题出在哪里吗?谢谢
发布于 2018-01-10 08:06:28
下载图像的最有效方法:SDWebImage
您可以为SDWebImage库使用Cocoa文件。
斯威夫特片段
import SDWebImage
imageView.sd_setImage(with: URL(string: @"user-url"), placeholderImage: UIImage(named: "placeholder"))目标-C片段:
#import <SDWebImage/UIImageView+WebCache.h>
...
[imageView sd_setImageWithURL:[NSURL URLWithString:@"user-url"]
placeholderImage:[UIImage imageNamed:@"placeholder"]];希望这将有助于做有效的方式下载图像基本上,无论何时你使用UICollectionView或UITableView。
发布于 2018-01-10 07:43:32
你可以在翠鸟图书馆做得更容易,如下所示。
let url = URL(string: "url_of_your_image")
imageView.kf.setImage(with: url)发布于 2018-01-10 07:52:03
试试下面的代码
if data != nil { // check nil here
let image = UIImage(data: data)
DispatchQueue.main.async {
self.image = image
}
}
}.resume()https://stackoverflow.com/questions/48182398
复制相似问题