본문 바로가기
IOS

iOS) UIImagePickerController

by eigen96 2022. 5. 11.
728x90

지난 번 인스타그램 레이아웃을 작성한 뒤 이번엔 게시물을 업로드하는 기능을 구현하는 예제를 정리해볼까합니다.

Right BarButton 적용할 액션 메소드를 추가해줍니다.

ImagePicker뷰를 프레젠트 해주어야하므로

UIImagePickerController를 선언해줍니다.

이제 버튼을 누르면 이미지 선택하는 화면으로 넘어가게 되는 것을 볼 수 있습니다.

원래는 앨범 접근에 관련한 권한을 Plist에서 부여해야합니다.

따라서 Plist에서 Photo Library Usage Description을 추가합니다.

이미지 피커 컨트롤러의 속성에서 allowsEditing을 추가하여 true로 설정해주면

이미지 확대 및 편집이 가능하게 됩니다.

이제 Choose를 누른 후 동작을 구현합니다.

Choose를 누르면 ImagePicker뷰가 Dismiss되어야하고  게시물 작성 화면이 나오게 될 것입니다.

UIImagePickerControllerDelegate를 통해 위 과정이 가능합니다.

//UIImagePickerControllerDelegate를 사용할 때 UINavigationControllerDelegate도 필요

extension FeedViewController : UIImagePickerControllerDelegate , UINavigationControllerDelegate{

    //이미지를 선택하고 choose 눌렀을때 다음에 실행되는 메소드

    func imagePickerController(_ picker: UIImagePickerController,

                               didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {

        //선택된 이미지

        var selectImage : UIImage?

        //수정된 이미지가 존재할때 그대로 선택된 이미지로 할당. 없다면 오리지널 이미지.

        if let editedImage =

            info[UIImagePickerController.InfoKey.editedImage] as? UIImage { //info => 선택된 이미지의 정보를 가진 딕셔너리

            selectImage = editedImage

        }else if let originalImage = info[UIImagePickerController.InfoKey.originalImage] as? UIImage {

            selectImage = originalImage

        }

    }

}

 

사진 선택 후 넘어가는 뷰 컨트롤러를 만들어줍니다.

 

728x90

댓글