未设置来自 URL 的 UIImage 图像

Posted

技术标签:

【中文标题】未设置来自 URL 的 UIImage 图像【英文标题】:UIImage image from URL not being set 【发布时间】:2015-11-13 03:38:14 【问题描述】:

我目前在UICollectionViewCell 中嵌入了UICollectionViewembbedViewController 嵌入中的标签可以正常工作,但UIImageView 存在问题。出于某种奇怪的原因,我无法使用 AlamofireImage 或 Haneke 从 URL 设置图像,但是当图像从 Image.xcassetts 中的 UIImage 设置时可以正常工作。谁能解释一下为什么会发生这种情况?

embedCollectionView

func collectionView(collectionView: UICollectionView,
        cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell
    
        let cell = collectionView.dequeueReusableCellWithReuseIdentifier("trendCell", forIndexPath: indexPath) as! customCollectionViewCell

        let imgUrl = NSURL(fileURLWithPath: mainViewArrayContainer.artImg[indexPath.row])
        cell.secondCollectionViewImage.hnk_setImageFromURL(imgUrl)
        cell.secondCollectionViewLabel.text = mainViewArrayContainer.artImg[indexPath.row]
        return cell
    

ParentViewController

  func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell 
         if (indexPath.row == 3)
                let cell = collectionView.dequeueReusableCellWithReuseIdentifier("trendingCell", forIndexPath: indexPath)
                    as! customCollectionViewCell

                let controller:EmbbedCollectionViewController = 
self.storyboard!.instantiateViewControllerWithIdentifier("embbedCollectionView") as! EmbbedCollectionViewController
                addChildViewController(controller)
                cell.addSubview(controller.view)
                return cell
            
             else
     //removed to save space

            

【问题讨论】:

用相关代码更新您的问题。 【参考方案1】:

由于某些奇怪的原因,我无法使用 AlamofireImage 或 Haneke 从 URL 设置图像

您不能通过下载直接设置图像。您必须现在返回单元格。下载需要时间。您必须异步下载并稍后返回并设置图像。

【讨论】:

另外,当完成从异步块中获取图像时,请记住确保将图像设置在主队列中。 有道理,谢谢。我如何确保图像被设置在主队列中? @MatthewLuiHK 强制使用:dispatch_sync(dispatch_get_main_queue()) () -> Void in

以上是关于未设置来自 URL 的 UIImage 图像的主要内容,如果未能解决你的问题,请参考以下文章

遍历来自 NSArray 的数据并从 url 中提取 UIImage

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

Swift4:来自 URL 的 UIImage

更改图像视图后 UIImage 未更新

UIImage 未根据 UIImageView 大小宽度和高度调整大小

无法从 URL 获取图像以在 UIImage 中快速更新