助けが必要です。カメラをアプリに統合する必要があります。以下について学びたいです。
誰か私を正しい方向に向けてもらえますか?
まあ、 UIImagePickerController
は必要なツールです。それはそのチェックリストのほとんどのことを行います。
ボタンの場合、グラフィック付きのカスタムボタンを作成できます。または、ツールバーまたはナビゲーションバーを使用してボタンを保持する予定の場合は、 UIBarButtonSystemItemCamera
を使用してバーボタンを作成できます。 =システムアイテム。これにより、フレームワークのイメージが得られます。
それをタップすると、UIImagePickerController
インスタンスが作成され、モーダルで表示されます。
UIImagePickerController * imagePicker = [[UIImagePickerController alloc] init];
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePicker.delegate = self;
[self presentModalViewController:imagePicker animated:YES];
[picker release];
delegate
プロパティがid < UIImagePickerControllerDelegate, UINavigationControllerDelegate> delegate;
として定義されているため、両方のプロトコルを採用する必要がありますが、ほとんどの場合、実装するメソッドは2つだけです-imagePickerControllerDidCancel:
およびimagePickerController:didFinishPickingMediaWithInfo:
。 UIImagePickerControllerDelegate
プロトコルには別のメソッドがありますが、それは非推奨です。この辺りでよく言及されていても、使用しないでください。あなたはキャンセルハンドラがこのように書かれることを期待するでしょう、
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
[self dismissModalViewControllerAnimated:YES];
}
他の方法は、ほとんどのことを行う場所です。
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
UIImage * image = [info objectForKey:UIImagePickerControllerEditedImage];
// You have the image. You can use this to present the image in the next view like you require in `#3`.
[self dismissModalViewControllerAnimated:YES];
}
写真の撮影は、UIImagePickerController
インスタンスによって自動的に行われます。ただし、それらのコントロールをオーバーライドしたい場合は、showsCameraControls
をNO
に設定してから、独自のcameraOverlayView
を実装することで可能になります。これを実行して写真を撮るためのボタンを割り当てた場合、takePicture
メソッドを使用して実際に写真のアクションをトリガーできます。したがって、これは#2
に対処する必要があります。
他のプロパティを使用して、イメージピッカーを調整することもできます。たとえば、mediaTypes
プロパティを使用して、ユーザーに画像の撮影のみを制限できます。
ドキュメントの言い換えdismissModalViewControllerAnimated:
はiOS6以降では非推奨です。使用する dismissViewControllerAnimated:completion:
代わりに。