PHPickerViewControllerを使って、複数画像を取り出す基本的なコード

PHPickerViewControllerを使って画像を複数選択するコードを書く

didFinishPickingのメソッドの中でPHPickerResultの配列を順番に取り出すというイメージです。 非同期で画像は読み込まれるため、もしUIImageViewに表示させたいという場合は、メインメソッドで処理するようにDispatchQueueを使ってメインスレッドで処理させるようにする。

func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) {
   picker.dismiss(animated: true, completion: nil)
   for result in results {
      result.itemProvider.loadObject(ofClass: UIImage.self, completionHandler: { (object, error) in
         if let image = object as? UIImage {
            DispatchQueue.main.async {
               // Use UIImage
               print("Selected image: \(image)")
            }
         }
      })
   }
}

Category