<Swift>PHPicker - 사진앱 이용하기
앱에서 프로필 사진 등록이나 게시물에 사진을 올릴때 사진앱에서 사진을 가져올때
우리는 PHPicker를 이용해서 가져올 수 있습니다.
사진 앱을 이용하기 위해선 우선 PHPickerConfiguration 과 PHPickerViewController를 알아야 합니다.
Apple Document를 살펴보면
PHPickerConfiguration
PHPickerViewController
우선 PHPicker는 ios 14 부터 지원 됩니다.
저는 사진앱을 열고 거기서 사진을 하나 골라서 받아오는걸 구현해 볼게요
1. ImagePicker: UIViewController라는 클래스를 생성후 import PhotosUI 합니다.
-> PhotosUI를 import 해줍니다.
2. openLibrary 라는 function을 만들어 줍니다.
3. 이제 configuration을 설정해 줍니다.
우선 14이상 부터 사용 가능해서 버전 별로 if 문으로 나눠 주고 14밑으로는 UIImagePickerController를 사용하게 해줬습니다.
configuration.selectionLimit은 선택하는 사진 갯수 입니다.
configuration.filter 는 사진 동영상 같은 타입을 정해줍니다. 저는 사진을 쓸껍니다.
그후 PHPickerViewController에 configuration을 넣어서 사진 선택 화면을 AppNavigator modal로 띄웁니다.
4. PHPickerViewControllerDelegate 를 활용해 사진 선택후 받는 걸 구현 합니다.
extension을 활용해 같은 ViewController에서도 보기 편하게 구현했습니다.
사진을 선택하면 result에 담겨서 오는데 한개를 선택했기 때문에 first를 사용하지만
여러개를 선택했을 경우는 first를 사용하면 안됩니다.
위 didPickImage / didFailPickImage 는 다음 단계에서 만들어 줄겁니다.
5. 이제 다른곳에서 사용할 수 있게 ImagePicker에 대한 Delegate를 만들어 줍니다.
이렇게 하면 ImagePicker.openLibrary 를 사용하면 PHPickerViewController가 열리고 사진을 선택하면
didPickImage로 선택된 이미지를 다룰수 있습니다.
감사합니다.