Updated:

1. 사진앱을 사용해야 할 때

sns 업로드, 카톡 전송 등등 앱을 사용하면서 다양한 경우에 사진을 사용할 때가 있다.

그럴 경우 아이폰 자체 앱인 사진앱에 접근해 사진을 선택해야 한다.

이러한 사진앱에 대한 접근이 필요할 때 사용하는 UIImagePickerController를 알아보도록 하자

2. UIImagePickerController 선언

나는 인스타그램 유사 앱을 만들면서 게시물 업로드 버튼을 누르면 UIImagePickerController가 나타나도록 할 것이다.

일단 UIImagePickerController를 선언하도록 하자

private lazy var imagePickerController: UIImagePickerController = {
    let imagePickerController = UIImagePickerController()
    // 사진첩 열기
    imagePickerController.sourceType = .photoLibrary

    return imagePickerController
}()


다음과 같이 imagePickerController를 선언해주었다.

imagePickerController변수를 선언하였으니 버튼을 터치하면 넘어갈 수 있도록 설정하자.

...

let uploadButton = UIBarButtonItem(
    image: UIImage(systemName: "plus.app"),
    style: .plain,
    target: self,
    action: #selector(didTapUploadButton)
)

@objc func didTapUploadButton() {
    present(imagePickerController, animated: true)
}

...


이제 사진앱의 사진첩으로 이동할 수 있도록 버튼을 설정해주었으니 테스트해보자.


오오…!! 버튼을 터치하니 사진앱이 나타나게 되었다!

하지만 이미지를 터치하면 아무런 액션이 발생하지 않고 imagePickerController가 닫혀 버린다.

실제 앱에서 사진 이미지를 이용할 때 그 사진의 일부분만 필요해 이미지를 확대해 잘라내기도 한다.

따라서 선택된 이미지를 편집할 수 있도록 설정해주자.

private lazy var imagePickerController: UIImagePickerController = {
    let imagePickerController = UIImagePickerController()
    // 사진첩 열기
    imagePickerController.sourceType = .photoLibrary
    // 선택된 이미지 편집허용
    imagePickerController.allowsEditing = true

    return imagePickerController
}()



imagePickerController.allowsEditing = true로 설정해주니 이미지를 선택했을 때 편집화면으로 넘어가게 되었다.

3. 사진앱 접근 권한설정

지금은 Xcode 시뮬레이터의 사진앱을 사용했기 때문에 자연스럽게 사진앱에 접근권한 alert가 나타나지 않았는데, 실제 앱에서 사진앱을 사용하기 위해선 접근권한 부여가 필요하다.



다음과 같이 권한설정을 위해 alert를 나타내도록 설정하자.

스크린샷 2021-12-17 오전 12 59 46 info.plist로 이동해 사진과 같이 ‘Privacy - Photo Library Addtions Usage Description’ Key를 추가해 주고 Value로 권한을 요청하는 텍스트를 작성하면 된다.

4. 마무리

UIImagePickerController를 이용해 사진앱에 접근하는 방법을 알았다.

실제 앱에서 사용하기 위해선 위와 같은 과정에 더해 이미지를 터치했을 때 터치된 이미지를 이용하는 과정이 필요하다.

따라서 이후 포스팅에선 선택된 이미지를 다른 화면으로 전달하는 법을 알아보도록 하겠다.





출처 : 30개 프로젝트로 배우는 iOS 앱 개발 with Swift 초격차 패키지 Online - part 4. 인스타그램 앱 만들기

권한설정 alert 이미지 출처 : https://guide.worksmobile.com/kr/settings/settings-guide/set-device/set-device-privacy/ (네이버웍스 헬프센터)