我的JSON响应包含很多数据,包括图像 我想要的是显示文本(因为下载速度非常快),并且在后台下载图像并在完成时显示
这是我的代码,用于处理cellForRowAt函数中单元格中的图像
if let imgeArray = self.myResponse[indexPath.row]["photos"] as? [[String:Any]] {
if let photoUrl = imgeArray[0]["Url"] as? String {
if let url = NSURL(string: "https:serverName/Pics/\(photoUrl)"){
if let data = NSData(contentsOf: url as URL) {
cell?.Image.contentMode = .scaleAspectFit
cell?.Image.image = UIImage(data: data as Data)
}
}
}
}
它工作正常,但需要时间 有帮助吗?
答案 0 :(得分:-1)
下载图像后,首先调用DispatchQueue.global(qos:.background).async,然后调用DispatchQueue.main.async,然后在图像视图中设置图像。
cell?.Image.contentMode = .scaleAspectFit
DispatchQueue.global(qos: .background).async {
if let url = NSURL(string: "https:serverName/Pics/\(photoUrl)"){
if let data = NSData(contentsOf: url as URL) {
DispatchQueue.main.async {
cell?.Image.image = UIImage(data: data as Data)
}
}
}
}