目前,我正在尝试使用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)")
}
})
}
}发布于 2021-08-27 09:34:52
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-然后您可以处理结果数组中的对象
let identifiers = results.compactMap(\.assetIdentifier)
let fetchResult = PHAsset.fetchAssets(withLocalIdentifiers: identifiers, options: nil)https://stackoverflow.com/questions/68944319
复制相似问题