使用 SDWebImage 为 UICollectionView 可重用单元从路径加载图像 - Swift

Posted

技术标签:

【中文标题】使用 SDWebImage 为 UICollectionView 可重用单元从路径加载图像 - Swift【英文标题】:Loading images from Paths using SDWebImage for UICollectionView Reusable Cells - Swift 【发布时间】:2016-08-15 10:02:39 【问题描述】:

我将问题编辑为更具体: 我需要用多个可重用的集合单元完成一个 UICollectionView,每个集合单元都有一个使用 SDWebImage 从路径加载的 UIImage。 我希望加载所有图像,然后立即在集合视图中显示所有图像。 我的问题是:当我在函数内使用 sd_setImageWithURL 时:

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell

图像不加载。我试图在任何地方重新加载集合的数据 - 但它不会加载它们。

SDWebImage 将图像加载到集合视图并使其显示的正确方法是什么?

提前感谢所有花时间阅读和帮助的人:)

【问题讨论】:

你的问题很广泛,但基本上你需要开始下载所有图像,一旦它们全部下载完毕,然后将适当的数据放入驱动你的 collectionview 的数组中并重新加载集合视图。完成所有操作后,您可以使用 dispatch_group 和 dispatch_group_notify 加载集合视图 感谢 Paulw11 的快速回复 :) 我现在试试 【参考方案1】:

阅读:

    Swift: load images Async in UITableViewCell Best way to load image url swift 2 in UITableView how to implement lazy loading of images in table view using swift

tableview中加载图片的主要思路:

    生成图片 urls/paths 数组 开始在实用程序线程 (GCD) 中加载图像 用不带图像的单元格填充 tableView 收到事件时在主线程中更新单元格 (uitableView.visibleCells)*

*通常的事件类型:

    当加载一个图像或所有图像时 UITableViewDelegate 协议事件 (https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITableViewDelegate_Protocol/) 触摸事件 过渡事件

【讨论】:

哇,感谢您提供如此详尽的答案。欣赏它

以上是关于使用 SDWebImage 为 UICollectionView 可重用单元从路径加载图像 - Swift的主要内容,如果未能解决你的问题,请参考以下文章

使用 SDWebImage 下载的图像的 UIImageView 幻灯片

如何将SDWebImage转换为UIImage?

SDWebImage原理和使用

为通用 iOS 设备创建产品存档时出现 SDWebImage 错误

多图片下载缓存及SDWebImage

使用 SDWebImage 处理超大图像的下载