2017-07-12 16 views
0

私はUIImagePickerControllerをカメラモードでは正常に動作させていますが、ライブラリモードでは正常に動作していません。フォトライブラリが表示されているときは、スクロールしてキャンセルを選択できますが、タップするとアルバムは選択できません。これを約1時間は把握しようとしていましたが、動作していません。UIImagePickerController |写真ライブラリが出現しても選択が機能しない

XCode 8.3.3 | iOS 10.3.2

適切なプライバシーが追加されました。以下は私の簡単なプレゼンテーションコードです。

すべてのご協力をよろしくお願いいたします。問題の

// Opens Photo Library 
    func openPhotoLibrary() { 
        if UIImagePickerController.isSourceTypeAvailable(.photoLibrary) { 
            let picker = UIImagePickerController() 
            picker.delegate = self 
            picker.allowsEditing = true 
            picker.sourceType = .photoLibrary 
            present(picker, animated: true, completion: nil) 
        } else { 
            UIAlertController.presentWith(title: "Error".localize(), message: "The photo library can not be accessed at this time.".localize(), on: self) 
        } 
    } 

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { 
     dismiss(animated: true, completion: nil) 
     let image = info[UIImagePickerControllerOriginalImage] as! UIImage 

     guard currentImage != "left" else { 
      leftImage = image 
      leftImageView.image = image 
      return 
     } 

     guard currentImage != "right" else { 
      rightImage = image 
      rightImageView.image = image 
      return 
     } 

     guard currentImage != "front" else { 
      frontImage = image 
      frontImageView.image = image 
      return 
     } 
    } 

LINK:解決しようhttps://www.youtube.com/watch?v=wsKA994Sg88&feature=youtu.be

+0

フォトライブラリが開かれ@dfd内の画像ピッカーを却下する必要があるということですが、アルバムの選択は何もしません。私はスクロールしてキャンセルすることができますが、他には何もできません。 –

+0

@dfd photo文庫が開かれているので、if文が成功することがわかります。問題は、アルバムや写真のいずれもライブラリ内で選択できないことです。 –

+0

@dfd 'class PhotoViewController:UIViewController、UIImagePickerControllerDelegate、 UINavigationControllerDelegate {' –

答えて

0

問題は、キーボードを閉じるために使用するUIViewの拡張によるものです。あなたの多くは以前にそれを見たかもしれません。

extension UIView { 
    // Dismisses Keyboard 
    open override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 
    self.endEditing(true) 
    } 
} 

ソリューションは簡単ですが、ちょうどself.endEditing(true)super.touchesBegan(touches, with: event)を追加し、あなたはすべてのセットです。

0

あなたが選択していないが、あなたがいるようです。問題は、あなたがdidFinishPickingMediaWithInfo

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) 
    { 
      imagePicker.dismiss(animated: false, completion: nil) 

    } 
関連する問題