質問失礼します。
カメラを使用時、cameraPicker.allowsEditing = trueを設定していれば正常にpickerをdismiss出来るのですが、
こちらをコメントアウトすると撮影後に「USE PHOTO」を押下しても反応せず、dismissする事ができません。
.allowsEditingはトリミングを可能にする為の判定という認識だったのですが、
一体何が原因で反応しなくなってしまうのでしょうか。
どなたかご教授いただけますと嬉しいです。
よろしくお願い致します。
・viewController(plistのPrivacy - Camera Usage Descriptionは設定済みです)
Swift
1import UIKit 2import Photos 3 4class ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate { 5 6 7 override func viewDidLoad() { 8 super.viewDidLoad() 9 10 } 11 12 @IBAction func useCamera(_ sender: Any) { 13 14 let sourceType = UIImagePickerController.SourceType.camera 15 //カメラが利用可能かチェックする 16 if UIImagePickerController.isSourceTypeAvailable(.camera) { 17 //カメラを変数化する 18 let cameraPicker = UIImagePickerController() 19 cameraPicker.sourceType = sourceType 20 cameraPicker.delegate = self 21 //写真のトリミングを可能にする 22 // cameraPicker.allowsEditing = true←ここをコメントアウトすると反応しなくなってしまう 23 //カメラを表示させる 24 present(cameraPicker, animated: true, completion: nil) 25 26 } else { 27 print("エラー") 28 } 29 30 } 31 32 //キャンセルを押下した時の処理 33 func imagePickerControllerDidCancel(_ picker: UIImagePickerController) { 34 picker.dismiss(animated: true, completion: nil) 35 } 36 37 //撮影後の処理 38 func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) { 39 40 //infoの中に画像が入ってくるから、それをnilじゃないか確認してイメージに変換して変数とする 41 if let pickedImage = info[.editedImage] as? UIImage { 42 43 //イメージをbase64にエンコードする 44 let imageData = pickedImage.pngData()! as NSData 45 let imageString = imageData.base64EncodedString(options: .lineLength64Characters) 46 47 print(imageString) 48 //ピッカーを閉じる 49 picker.dismiss(animated: true, completion: nil) 50 } 51 } 52}
回答1件
あなたの回答
tips
プレビュー