我正在尝试从不同的网址加载一些图片,以便将它们添加到我的表视图单元格中。每个单元格都包含一个UIImageView,图片(UIImage)无法正确加载。
有时URL连接失败,有时则失败。我要疯了, 请帮帮我!!
这是我的代码中尝试从特定网址下载图片的部分:
let imageURL = NSURL(string: "https://upload.wikimedia.org/wikipedia/commons/thumb/9/98/Angels_Stadium.JPG/1920px-Angels_Stadium.JPG")!
let task = URLSession.shared.dataTask(with: imageURL as URL) { (data, response, error) in
guard error == nil, let data = data else { return }
let downloadedImage = UIImage(data: data)
self.foto = downloadedImage!
tableWiew.reloadData()
}
task.resume()
此代码位于我的类(User)的init函数内。在实例化该类之后,我尝试将图片添加到我的tableview中,如下所示:
let user:User = User(json: obj, tableWiew: self.tableView)
addCell(cell: cell, name: user.nombre, job: user.puesto, nIdeas: "0", mProp: "0", image: user.foto)
“addCell”方法只创建一个自定义单元格并将其插入到我的tableView中。除了该死的画面外,这种方法还算不错。
如果我从我的资产中添加图片,它可以正常工作,但当我尝试从网址添加图片时,我不知道出了什么问题。
答案 0 :(得分:1)
请在UITableViewDataSource的cellForRowAt方法中下载图像,如果可能,请使用SDWebImage来帮助您使用许多选项,例如占位符。它在内部处理缓存,它是异步的。
答案 1 :(得分:0)
let imageURL = NSURL(string: "https://upload.wikimedia.org/wikipedia/commons/thumb/9/98/Angels_Stadium.JPG/1920px-Angels_Stadium.JPG")!
let request = URLRequest(url: imageURL as URL)
let session = URLSession.shared
let task = session.dataTask(with: request, completionHandler: {data, response, error -> Void in
// print("Task completed")
// print(response)
DispatchQueue.main.async(execute: {
self.imgVW.image = UIImage(data: data!)
})
})
task.resume()