ios swift图库库性能问题,一旦加载图像/视频列表,数据来自iCloud

Posted

技术标签:

【中文标题】ios swift图库库性能问题,一旦加载图像/视频列表,数据来自iCloud【英文标题】:Ios swift gallery library Performance issue, once loading image/Video list, the data is from ICloud 【发布时间】:2020-04-17 05:32:16 【问题描述】:

我是 ios 新手,我正在使用第三方库来集成我的多个图像/视频选择器。图书馆链接https://github.com/hyperoslo/Gallery

本地图像/视频显示速度足够快,但问题是一旦我使用 iCloud 包含 500 多张图像,几乎需要 1 分钟。第一次加载,是他们的任何解决方案减少或几乎消除加载时间。

这是我的代码快照,可能会有所帮助

class MyGalleryViewController: UIViewController,     GalleryControllerDelegate,UITabBarControllerDelegate
let gallery = GalleryController()
override func viewDidLoad() 
super.viewDidLoad()

    openGallery()     

private func openGallery()
    gallery.delegate = self
    gallery.modalPresentationStyle = .fullScreen
    present(gallery, animated: true, completion: nil)

//Rest of galleryController function

提前非常感谢。

【问题讨论】:

【参考方案1】:

您需要遵循以下步骤:

为 iCloud 上的图像获取 PHAsset
 PHAsset.fetchAssets(with: .image, options: PHFetchOptions())
    // Images on iCloud will be included
请求资产图片
let imageRequestOptions = PHImageRequestOptions()
imageRequestOptions.deliveryMode = .opportunistic
imageRequestOptions.isNetworkAccessAllowed = true // allowing iCloud image downloaded from network
imageRequestOptions.progressHandler = progressHandler // progressHandler is outer callback, may be called multiple times

PHCachingImageManager.default().requestImage(for: asset)
在 PHAssetImageProgressHandler 中处理图片下载进度
let progressHandler: PHAssetImageProgressHandler =  (progress, _, stop, _) in
    cell.updateProgress(CGFloat(progress))

iCloud 镜像的关键:

    PHImageRequestOptions.isNetworkAccessAllowed PHImageRequestOptions.progressHandler

【讨论】:

感谢 Rango,快速回答,但我很困惑如何使用 Gallery 库配置“PHImageRequestOptions”? 有一个 PHImageRequestOptions()。检查库源文件的第 18 行“UIImageView+Extensions.swift”。您可以修改选项并添加progressHandler来自行处理下载进度。 谢谢,我一定会试试的。 :)

以上是关于ios swift图库库性能问题,一旦加载图像/视频列表,数据来自iCloud的主要内容,如果未能解决你的问题,请参考以下文章

从图库访问图像并在 iOS 应用程序库中显示

swift iOS - Swift - 显示图库/相机的图像选择器,感谢http://www.theappguruz.com/blog/user-interaction-camera-using

swift iOS - Swift - 显示图库/相机的图像选择器,感谢http://www.theappguruz.com/blog/user-interaction-camera-using

swift iOS - Swift - 显示图库/相机的图像选择器,感谢http://www.theappguruz.com/blog/user-interaction-camera-using

swift iOS - Swift - 显示图库/相机的图像选择器,感谢http://www.theappguruz.com/blog/user-interaction-camera-using

swift iOS - Swift - 显示图库/相机的图像选择器,感谢http://www.theappguruz.com/blog/user-interaction-camera-using