首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS 14: PHPickerViewController有没有办法同时加载所有资产PHPickerResult

iOS 14: PHPickerViewController有没有办法同时加载所有资产PHPickerResult
EN

Stack Overflow用户
提问于 2021-08-26 19:26:08
回答 1查看 613关注 0票数 0

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

代码语言:javascript
复制
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)")
                }
            })
        }
    }
EN

回答 1

Stack Overflow用户

发布于 2021-08-27 09:34:52

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

要做到这一点,您的控制器应该符合PHPickerViewControllerDelegate

代码语言:javascript
复制
class ViewController: UIViewController, PHPickerViewControllerDelegate {

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

代码语言:javascript
复制
pickerController.delegate = self //if you create PHPickerViewController inside your viewController

然后,您将在此方法上获得结果

代码语言:javascript
复制
func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) {

2-如果您不能获得多个选择,您可以更改与PHPickerViewController一起使用的PHPickerConfiguration对象的选择限制

代码语言:javascript
复制
var confing = PHPickerConfiguration(photoLibrary: PHPhotoLibrary.shared())
confing.selectionLimit = 5
let pickerController = PHPickerViewController(configuration: confing)

3-然后您可以处理结果数组中的对象

代码语言:javascript
复制
let identifiers = results.compactMap(\.assetIdentifier)
let fetchResult = PHAsset.fetchAssets(withLocalIdentifiers: identifiers, options: nil)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68944319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档