2017-02-02 3 views
-2

私はUIImageViewを使ってカメラを開いて、写真を撮り、頑丈な部分を切り抜いてから、それはすでに私が書いたクラスで。私は前にカメラで仕事をしたことがないので、これを行う方法についてはあまりよく分かりません。カメラで写真を撮ってアプリ内で「プロフィール画像」として使用

+0

UIImagePickerControllerをインスタンス化するとき

また、そのallowsEditing値を変更し、私はあなたが表示されます答えを投稿します 'UIImagePickerController' – Pierce

+0

に見てどうすればいいのですが、それについての文書をまだ読んでおくべきです – Pierce

答えて

1

あなたはUIImagePickerControllerを実装する必要があります - また、あなたがUIImagePickerControllerDelegateUINavigationControllerDelegateに準拠するように、あなたのViewControllerが必要であることを意味しています。

func showCamera() { 
    // Check if the device has a camera 
    if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.camera) { 

     // Device has a camera, now create the image picker controller 
     let imagePicker = UIImagePickerController() 
     imagePicker.delegate = self 
     imagePicker.sourceType = UIImagePickerControllerSourceType.camera 
     imagePicker.allowsEditing = false 

     self.present(imagePicker, animated: true, completion: nil) 

    } 
    else { 
     NSLog("No Camera") 
    } 
} 

は、その後、あなたが画像を処理するUIImagePickerControllerDelegateの一環として、この方法を持っている必要があります。

class YourViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate { 

は、その後、あなたがカメラを表示するメソッドを作成することができます:まず、あなたのViewControllerがこれを行うことを確認してください

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { 

    // To dismiss the image picker 
    self.dismiss(animated: true, completion: nil) 

    let chosenImage = info[UIImagePickerControllerOriginalImage] as! UIImage 

    // Do whatever you wish with the image 
} 

また、Appleは新しいプライバシープロトコルを制定していることにも注意してください。ユーザーのカメラまたはフォトライブラリにアクセスするには、Info.plistにアクセスし、NSPhotoLibraryUsageDescriptionを追加する必要があります。そうしないと、カメラにアクセスしようとするとアプリがクラッシュします。あなたのplistに移動し、新しい行を挿入し、次にNSPhotoLibraryUsageDescriptionを貼り付けてください、そして、彼らは自動的に "プライバシー - カメラアクセス"のようなものにそれを変換します。次に、カメラにアクセスする必要がある理由について、値の列に説明を入力する必要があります。この説明は、最初にあなたのアプリにカメラへのアクセスを許可するように求められたときにユーザーに表示されます。あなたは、彼らが写真を撮るた後、ユーザーが画像をトリミングしたい場合はtrue

+0

私は自分の作付方法を構築する必要はありませんか?それは組み込まれていますか? –

+0

私はそう信じています - 自分で試してみる必要がありますが、すでに作成したアップルを使用することは可能です。なぜホイールを再発明するのですか? – Pierce

+0

良い点。深いお答えいただきありがとうございます。 –

関連する問題