오늘은 아이폰에서 갤러리 사진을 가져오는 방법에 대해 알아보도록 하겠습니다
UIImagePickerController
는 시스템에서 제공하는 갤러리 이미지 픽커입니다
테스트를 위한 화면 생성 과정은 생략합니다!
1. UIImagePickerContoller 초기화
let picker = UIImagePickerController()
self.picker.delegate = self
self.picker.sourceType = .photoLibrary
self.picker.modalPresentationStyle = .fullScreen
픽커를 사용할 ViewController에서 UIImagePickerController 인스턴스 생성 및 초기화를 진행합니다
delegate
: 픽커에서 선택한 이미지 정보를 받을 수 있도록 delgate를 설정합니다.sourceType
: 갤러리에서 가져올 소스타입을 지정합니다.modalPresentationStyle
: present 스타일을 지정합니다.
2. UIImagePickerContoller Delegate
//MARK: - UIImagePickerController Delegate
extension ViewController : UIImagePickerControllerDelegate, UINavigationControllerDelegate{
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
if let image = info[UIImagePickerController.InfoKey.originalImage] as? UIImage {
self.dismiss(animated: false, completion: {
DispatchQueue.main.async {
self.imageView.image = image
}
})
}
}
}
첫 번째로 UIImagePickerControllerDelegate, UINavigationControllerDelegate를 extension 하여 imagePickerController(_:didFinishPickingMediaWithInfo:) 함수에 이미지 픽커에서 이미지가 선택되었을 때 이벤트 처리를 하면 됩니다.
위 코드는 이미지 픽커를 닫고 imageView
에 선택한 이미지를 표시하는 예제입니다.
3. ImagePicker 오픈
@IBAction func openLibrary(_ sender: Any) {
self.present(picker, animated: true, completion: nil)
}
현재 뷰에 이미지 픽커를 오픈해줍니다

그럼 갤러리의 사진들이 그리드뷰에 나타나는 것을 확인할 수 있습니다.

픽커에서 이미지를 선택하면 해당 이미지가 화면에 표시됩니다
해당 예제의 원본 소스는 깃에 업로드 해두었습니다
https://github.com/YuchanSong/ui-image-picker-example
GitHub - YuchanSong/ui-image-picker-example: UIImagePickerController를 통해 선택한 이미지를 처리하는 예제입니
UIImagePickerController를 통해 선택한 이미지를 처리하는 예제입니다. Contribute to YuchanSong/ui-image-picker-example development by creating an account on GitHub.
github.com