Overview

프로젝트 인원 및 개발 파트

  • 1명

프로젝트 기간

  • 1일

배운 점

  • 사진첩 권한 획득하는 방법.
  • UIImagePickerController를 이용해 사진첩의 사진을 선택하고, 크롭하는 방법, 편집된 이미지를 받는 방법.
/// 사진첩 이용 권한 획득 여부를 확인한다.
///
/// - returns: 획득 여부
func checkPhotoLibraryPermission() -> Bool {
    let status = PHPhotoLibrary.authorizationStatus()
    switch status {
    case .authorized:
        return true
    default:
        return false
    }
}

/// 사진첩 이용 권한을 요청한다.
///
/// - parameters:
///     - completionHandler: 완료 핸들러
/// - parameter isGranted: 획득 여부
func requestPhotoLibraryPermission(completionHandler: @escaping (_ isGranted: Bool) -> Void) {
    PHPhotoLibrary.requestAuthorization { (status) in
        let isGranted = (status == .authorized) ? true : false
        completionHandler(isGranted)
    }
}
...
var imagePicker = UIImagePickerController()

self.imagePicker.delegate = self
self.imagePicker.sourceType = .photoLibrary
self.imagePicker.allowsEditing = true
...

extension SignUpViewController: UIImagePickerControllerDelegate, UINavigationControllerDelegate {
    
    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
        if let image = info[UIImagePickerControllerEditedImage] as? UIImage {
            // to do
        } else if let image = info[UIImagePickerControllerOriginalImage] as? UIImage {
            // to do
        }
        picker.dismiss(animated: true, completion: nil)
    }
    
}