Image Swift 3图像下载无法完全工作
因此,经过5个小时的坚定宣誓,我终于成功地将我的项目从Swift 2.2转换为Swift 3。事情发展起来了,现在一切都变聪明了,只有一个小例外 由于某些原因,我的图像不像以前那样异步下载 我已经录了一段视频给大家看,还有一些代码示例。我正在尝试AlamofireImage和一个普通的ole Swift扩展,它们都给出了相同的行为。正如您在视频中所看到的,当我拉动以刷新视图时,图像一开始根本不会加载(出于某种原因,我注意到默认占位符图像最初不会显示),它们突然出现 如果有人看到过类似的情况,如果可能的话,我将非常感谢您的帮助 视频是 因此,代码示例如下: 扩展函数Image Swift 3图像下载无法完全工作,image,swift3,ios10,Image,Swift3,Ios10,因此,经过5个小时的坚定宣誓,我终于成功地将我的项目从Swift 2.2转换为Swift 3。事情发展起来了,现在一切都变聪明了,只有一个小例外 由于某些原因,我的图像不像以前那样异步下载 我已经录了一段视频给大家看,还有一些代码示例。我正在尝试AlamofireImage和一个普通的ole Swift扩展,它们都给出了相同的行为。正如您在视频中所看到的,当我拉动以刷新视图时,图像一开始根本不会加载(出于某种原因,我注意到默认占位符图像最初不会显示),它们突然出现 如果有人看到过类似的情况,如果
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() { () -> Void in
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)
}
还有我对一个细胞使用AlamofireImage只是为了测试
if nc.returnCommentDetails().image != "" {
let url = URL(string: nc.returnCommentDetails().image!)
cell.imgProfile.af_setImage(withURL: url!)
cell.imgProfile.resizeForProfilePic()
}
因此,经过一些自我反省,我找到了问题的根源 它基本上有一个问题,就是我为使图像视图循环而编写的一个扩展,它评论说图像看起来很好 我将对此进行研究,如果有人正在使用类似的东西,我将提供一个替代方案:
func resizeForProfilePic(){
self.layer.borderWidth = 0.1
self.layer.masksToBounds = false
self.layer.borderColor = UIColor.black.cgColor
self.layer.cornerRadius = self.frame.height/2
self.clipsToBounds = true
}
使用AlamofireImage似乎已经对其进行了排序
let url = URL(string: nc.returnCommentDetails().image!)
let placeholderImage = UIImage(named: "DefaultImage")!
let size = CGSize(width: 100.0, height: 100.0)
let imageFilter = AspectScaledToFillSizeCircleFilter(size: size)
cell.imgProfile.af_setImage(withURL: url!, placeholderImage: placeholderImage, filter: imageFilter)
要解决此问题,只需在layer.cornerRadius之前添加此行
self.view.layoutIfNeeded()
然后第一次加载时所有图像都出现了我也遇到了同样的问题。当我注释掉带有拐角半径的线条时,图像显示的是一个漂亮的。我现在可能会坚持使用AFImage,因为它实际上有很多很酷的功能。但是找到它真是太好了。我失去了生存的意志:)