3

我是 iOS 开发的新手,很难理解 PHImageManager 的概念。我在某处读到它可以返回缩略图大小的图像和真实大小的图像,但我无法弄清楚如何。

在我的应用程序中,我显示了一个包含相机胶卷图像的集合视图。如果用户点击其中一个图像(单元格),则该图像将传递给另一个 ViewController 以进行更大尺寸的查看。我通过使用 segue 获取选定单元格的imageview.image属性并将其推UIImage送到下一个 ViewController 来实现这一点。

我的问题是:如何配置图像管理器以获取集合视图的缩略图大小图像并在选择图像时加载图像的实际大小?现在我正在使用targetSize40x40 的图像将图像加载到集合视图中,但是这样在下一个 ViewController 中打开时它们会失去分辨率。但是,如果我将图像的实际大小用于集合视图,则加载它需要很长时间。谁能给我一个解决这个问题的方法?

另外:我读了一些关于 PHCachingImageManager 的东西......它与解决我的问题有什么关系吗?

4

1 回答 1

2

我希望这段代码可以帮助你。

如果您使用我的代码完成了它,请选择我的答案,谢谢。

 override func collectionView(collectionView: UICollectionView, willDisplayCell cell: UICollectionViewCell, forItemAtIndexPath indexPath: NSIndexPath) {

                let options = PHImageRequestOptions()
                options.networkAccessAllowed = true
                options.synchronous = false
                PHImageManager.defaultManager().requestImageForAsset(assets?[indexPath.row] as! PHAsset, targetSize: CGSizeMake(40, 40), contentMode: PHImageContentMode.AspectFill, options: options) { (image, info) -> Void in
                    if (image != nil) {
                        (cell as! PhotoCell).image = image
                    }
                }




        }
于 2016-09-11T21:59:58.100 回答