我是 swift 的新手,目前正在制作个人应用程序,
我正在尝试加载此图像 我的图片网址
之后,我在表视图上使用此代码来加载图像
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let url = posts[indexPath.row].message
let url1 = URL(string: url!)
let data = try? Data(contentsOf: url1!) //make sure your image in this url does exist, otherwise unwrap in a if let check / try-catch
MoviePoster.image = UIImage(data: data!)
self.tableView.reloadData()
return cell
}
但屏幕不是图像,而是这样的 屏幕图像
任何帮助将不胜感激
首先,在实现 tableView 时,您需要像这样在viewDiLoad中设置表视图的委托和数据源。
yourTableView.datasource = self
yourTableView.delegate = self
在此之前,您需要像这样扩展表视图,我想您已经这样做了。
现在来到图像的下载部分。由于您是新手,因此下载此映像的过程不正确。
为什么?
- 您在cellForRowAtIndexPath中提到了reloadData(),这是完全错误的,只需检查在线答案即可。
其次,您的视图可能会进入挂起状态,因为如果您的图像很大,那么显示图像需要一些时间。所以可能是这样,你不会看到任何东西,或者你的视图也不会加载。
如何解决这个问题?
使用异步方式下载图像。任何你想下载的东西都在viewDidAppear中调用它。
有没有库作为快捷方式?
是的。使用 SDWebImage。这是一个很棒的图书馆。你不必考虑所有的事情。它已经完成了这项工作。您所要做的就是打电话。就像这样。
imageView.sd_setImage(with: URL(string: "yourdomainpathforImage"), placeholderImage: UIImage(named: "placeholder.png"))
从这里查看这个。