앨범에 있는 사진을 선택해서 이미지를 가져오는 UIPickerView를 사용하는 방법을 알아보자!
- PhotosUI import하기
import PhotosUI
- 기본 설정 세팅하기
func setupImagePicker() {
var configuration = PHPickerConfiguration()
configuration.selectionLimit = 0
configuration.filter = .any(of: [.images, .videos])
// 기본설정을 가지고, 피커뷰컨트롤러 생성
let picker = PHPickerViewController(configuration: configuration)
// 피커뷰 컨트롤러의 대리자 설정
picker.delegate = self
// 피커뷰 띄우기
self.present(picker, animated: true, completion: nil)
}
- delegate 구현하기
extension DetailViewController: PHPickerViewControllerDelegate {
func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) {
picker.dismiss(animated: true)
let itemProvider = results.first?.itemProvider
if let itemProvider = itemProvider, itemProvider.canLoadObject(ofClass: UIImage.self) {
itemProvider.loadObject(ofClass: UIImage.self) { (image, error) in
DispatchQueue.main.async {
// 이미지뷰에 표시
self.detailView.mainImageView.image = image as? UIImage
}
}
} else {
print("이미지 못 불러왔음!!!!")
}
}
}