[iOS] UIImagePickerController 로 라이브러리에서 사진 선택하기
사진을 라이브러리(사진첩) 에서 고르는 화면은 기본적으로 iOS에서 ImagePicker 라는 이름으로 제공된다. 다음 코드는 이 이미지피커를 띄우는 코드다.
사진을 고르거나 취소했을 때 호출되는 딜리게이트도 필요하다.
사진을 선택했을 경우의 딜리게이트는 이런 형태다.
참고로 ImagePicker의 딜리게이트로 등록하는 오브젝트는
UIImagePickerController *picker; picker = [[UIImagePickerController alloc] init]; [picker setDelegate:self]; picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; [self presentModalViewController:picker animated:YES];sourceType 을
UIImagePickerControllerSourceTypeCamera
로 설정하면 사진을 바로 찍어서도 가져올 수 있는 것 같다. (안해봄 -_-;;)사진을 고르거나 취소했을 때 호출되는 딜리게이트도 필요하다.
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker { [[picker parentViewController] dismissModalViewControllerAnimated:YES]; [picker release]; }취소되면 그냥 모달모드로 뛰운 이미지피커 뷰만 숨기고 끝내면 되겠지.
사진을 선택했을 경우의 딜리게이트는 이런 형태다.
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage]; [[picker parentViewController] dismissModalViewControllerAnimated:YES]; [picker release]; }UIImage형태로 가져왔으니 적절히 처리하면 되겠다.
참고로 ImagePicker의 딜리게이트로 등록하는 오브젝트는
UINavigationControllerDelegate
와 UIImagePickerControllerDelegate
프로토콜을 구현해야 한다. 경고(warnning)가 찝찝하다면 클래스 선언에서 적당히 선언해 주자.
댓글