【问题标题】:iOS 14: PHPickerViewController is there any way to load all assets at the same time PHPickerResultiOS 14:PHPickerViewController 有没有办法同时加载所有资产 PHPickerResult
【发布时间】:2021-08-26 19:26:07
【问题描述】:

目前,我正在尝试深入 PHPickerViewController 以从照片中同时选择多个图像。所以我想要用户选择的图像数组,我尝试了太多方法但没有运气。这是我的代码,请告诉我有最佳实践吗?

func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) {
        picker.dismiss(animated: true, completion: nil)
        var images: [UIImage?] = []
        var totalConversionsCompleted = 0
        for (index,result) in results.enumerated() {
            result.itemProvider.loadObject(ofClass: UIImage.self, completionHandler: { (object, error) in
                let image = object as? UIImage
                images.append(image)
                totalConversionsCompleted += 1
                if totalConversionsCompleted == index {
                    print("completion happen \(images)")
                }
            })
        }
    }

【问题讨论】:

    标签: ios swift phpickerviewcontroller phpicker photosui


    【解决方案1】:

    1 - 您是否将控制器设置为 PHPickerViewController 的委托?

    为此,您的控制器应符合 PHPickerViewControllerDelegate

    class ViewController: UIViewController, PHPickerViewControllerDelegate {
    

    您应该将您的控制器设置为 PHPickerViewController

    的委托
    pickerController.delegate = self //if you create PHPickerViewController inside your viewController
    

    然后你会得到这个方法的结果

    func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) {
    

    2 - 如果您无法获得多项选择,您可以更改与 PHPickerViewController

    一起使用的 PHPickerConfiguration 对象的选择限制
    var confing = PHPickerConfiguration(photoLibrary: PHPhotoLibrary.shared())
    confing.selectionLimit = 5
    let pickerController = PHPickerViewController(configuration: confing)
    

    3 - 然后您可以使用 results 数组中的对象

    let identifiers = results.compactMap(\.assetIdentifier)
    let fetchResult = PHAsset.fetchAssets(withLocalIdentifiers: identifiers, options: nil)
    

    【讨论】:

      猜你喜欢
      • 2021-03-12
      • 2022-01-16
      • 2012-04-07
      • 2021-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-22
      相关资源
      最近更新 更多