UIimage 未在 tableview 上加载
Posted
技术标签:
【中文标题】UIimage 未在 tableview 上加载【英文标题】:UIimage not loads on tableview 【发布时间】:2017-06-10 18:18:24 【问题描述】:我是 swift 新手,目前正在制作个人应用程序,
我正在尝试加载此图像 my image url
之后我在表格视图中使用此代码来加载图像
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
但不是图像,屏幕看起来像这样 screen image
任何帮助将不胜感激
【问题讨论】:
【参考方案1】:首先,在实现 tableView 时,您需要在 viewDiLoad 中设置 tableView 的 delegate 和 datasource 像这样。
yourTableView.datasource = self
yourTableView.delegate = self
在此之前,您需要像这样扩展您的 tableView,我认为您已经这样做了。
现在是图片的下载部分。由于您是新手,因此您下载此图像的过程不正确。
为什么?
-
您在 cellForRowAtIndexPath 中提到了 reloadData(),这是完全错误的。请查看在线答案。
其次,您的视图可能会处于挂起状态,因为如果您的图像很大,则显示图像需要时间。因此,您可能什么都看不到,或者您的视图也不会加载。
如何解决这个问题?
使用异步方式下载图片。你想下载的任何东西都在viewDidAppear中调用它。
是否有任何库作为快捷方式?
是的。使用 SDWebImage。这是一个很棒的图书馆。您不必考虑所有事情。它已经完成了工作。您所要做的就是打电话。就这样。
imageView.sd_setImage(with: URL(string: "yourdomainpathforImage"), placeholderImage: UIImage(named: "placeholder.png"))
从here.查看此内容
【讨论】:
我不能以 1 声望做到这一点 完成了,伙计,我知道这甚至不值得你给我的东西,但无论如何我非常感谢:)以上是关于UIimage 未在 tableview 上加载的主要内容,如果未能解决你的问题,请参考以下文章
Gif 图像(来自 url)未在 uiimage 视图中加载
UIImage 未在按钮 IBAction 上的 setImage 上更新
Swift 3 tableView 未在 reloadData() 上更新