상세 컨텐츠

본문 제목

[iOS] UIImagePickerController

SWIFT

by 옹홍 2021. 2. 14. 00:40

본문

이글은 zeddios.tistory.com/125 와 Do it 책을 참고해서 작성한 글입니다.

카메라와 포토라이브러리를 구현하기 위해서 필요한 필요한 것은 뭘까면 일단

import MobileCoreServices 가 필요하다.

 그다음에는

이렇게 UIImagePickerControllerDelegate, UINavigationControllerDelegate 라는 두개의 프로토콜이 필요하다.
imagePicker라는 UIImagePickerController 인스턴스를 생성해준다.

UIImagePickerController 인스턴스를 생성하는데, UINavigationControllerDelegate는 왜 필요한지는 UIImagePickerControllerDelegate의 delegate 속성은 UIImagePickerControllerDelegate와 UINavigationControllerDelegate 프로토콜을 모두 구현하는 객체로 정의되어있다고 한다.

-----

imagePicker.delegate = self를 할 때, self는 UINavigationControllerDelegate 타입이어야 한다. 이게 UIImagePickerControllerDelegate 뒤에 UINavigationControllerDelegate 가 붙여져있다고 한다. ImagePicker의 위임자를 UINavigationControllerDelegate에 위임해야 대리자는, 사용자가 이미지나 동영상을 선택하거나 imagePicker 화면을 종료할때 알림을 받는다고 한다.  

카메라나 포토 라이브러리에서 사진이 선택되었을때,??? 그다음에 해야할 것은 이 선택사진을 ImageView에 보여줘야한다.

이때 필요한것은 UIImagePickerControllerDelegate에 정의되어있는 메소드를 활용하면된다.

이 메소드를 쓰면된다. didFinishPickingMediaWithInfo 가 들어있는 메소드다. 해석하면 픽이 끝났다면 생기는 메소드? 이른느낌이다.

여기서 Info를 출력하면 

여기서 찾아야할 것은 UIImagePickerControllerOriginalImage이다. 

captureImage = info[UIImagePickerController.InfoKey.originalImage] as? UIImage 

이뜻은 원본이미지를 가져오는 것이라고 한다.

info[UIImagePickerController.InfoKey.EditedImage] as? UIImage는 편집된 이미지를 가져오는 것이라고 한다.

뭐 할튼 그 이미지를 이미지뷰에 넣어주고

마지막은 Dismiss를 꼭해줘야한다고 한다.

관련글 더보기

댓글 영역