OS 3.1 の UIImagePickerController インターフェイスを cameraOverlayView と takePicture で使用しようとしていますが、これがどのように機能するかを明らかに理解できていないため、必要な動作が得られません。
私がやりたいことは、ユーザーがピッカーを操作したり画像を編集したりすることなく、カメラを開いて自動的に写真を撮ることです。そこで、UIImagePickerController ( http://github.com/pmark/Helpful-iPhone-Utilities/tree/master/BTL%20Utilities/の例と同様) をサブクラス化し、すべてのコントロールをオフにします。
- (void)displayModalWithController:(UIViewController*)controller animated:(BOOL)animated {
self.sourceType = UIImagePickerControllerSourceTypeCamera;
self.showsCameraControls = NO;
self.navigationBarHidden = YES;
self.toolbarHidden = YES;
// Setting the overlay view up programmatically.
ipView = [[ImagePickerView alloc] init];
self.cameraOverlayView = ipView;
[controller presentModalViewController:self animated:NO];
}
overlayView で、UIImagePickerController の takePicture メソッドを強制的に起動することができました (これは、NSLog で確認でき、カメラが写真を撮っている音が聞こえるためです)。overlayView は問題なく表示されます。ただし、デリゲート メソッド didFinishPickingMediaWithInfo: は呼び出されず、imagePickerControllerDidCancel も呼び出されません。
では、どのようにデリゲート メソッドを呼び出して取得するか、または takePicture メソッドをオーバーライドして画像を保存するにはどうすればよいでしょうか? (ここで画像データをキャプチャする方法がわかりません。Googleは失敗したようです)。UIImagePickerController の根幹がどのように機能するかを理解できていないと感じずにはいられませんが、ドキュメントはあまり役に立ちません。
例えば:
「カスタム オーバーレイ ビューを提供して、カスタムの写真撮影インターフェイスを表示し、コードから写真の撮影を開始できます。カスタム オーバーレイ ビューは、画像によって提供されるデフォルト コントロールに加えて、またはその代わりに表示できます。ピッカー インターフェース。」
または showCameraControls から:
「このプロパティを NO に設定し、独自のカスタム コントロールを提供すると、画像ピッカー インターフェイスを閉じる前に複数の写真を撮ることができます。」- ピッカー インターフェイスを閉じるにはどうすればよいですか?
注: デリゲートは IB で適切に設定されているため、問題はありません。
ご協力いただきありがとうございます。