未设置来自 URL 的 UIImage 图像
Posted
技术标签:
【中文标题】未设置来自 URL 的 UIImage 图像【英文标题】:UIImage image from URL not being set 【发布时间】:2015-11-13 03:38:14 【问题描述】:我目前在UICollectionViewCell
中嵌入了UICollectionView
,embbedViewController
嵌入中的标签可以正常工作,但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