앨범에 접근해 사진 사진 선택 구현

1. PHPickerViewController

imagepickerviewcontroller 를 사용할려고 하였지만 iOS 14 가 출시되면서 등장한 PHPickerVIEWCONTROLLER를 사용해 보면 좋을 것 같아 사용해 보았다.

1-1 . 초기화

configuration을 이용해 PHPickerViewController를 초기화 해주어야한다.

private lazy var imagePicker : PHPickerViewController = {
        var config = PHPickerConfiguration()
        config.selectionLimit = 5
        config.filter = .any(of: [.livePhotos, .images])
        let pickerVC = PHPickerViewController(configuration: config)
        pickerVC.delegate = self
        return pickerVC
    }()

최대 이미지 선택개수와 , 선택할수 있는 컨텐츠의 종류를 설정해 줄 수 있다.

특정 이벤트에서 이미지를 선택할수 있는 화면(imagePicker )을 띄워주고 delegate를 구현하면된다.

delegate 구현

extension RegistItemViewController : UINavigationControllerDelegate, PHPickerViewControllerDelegate{
    
    func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) {
        picker.dismiss(animated: true)
        var providers :[NSItemProvider?] = results.map{$0.itemProvider}
        providers.insert(nil, at: 0)
        self.imageListSubject.onNext(providers)
   
    }
    
    
}