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 视图中加载

未在 TableView 中重新加载正确的数据

UIImage 未在按钮 IBAction 上的 setImage 上更新

Swift 3 tableView 未在 reloadData() 上更新

如何修复终端未在 OS X Lion 上加载 ~/.bashrc [关闭]

来自 url 的 UIImage 需要很长时间才能快速加载