web-dev-qa-db-ja.com

UIImagePickerController-デフォルトで正面カメラにアクセスするにはどうすればよいですか?

ViewControllerから次のコードを使用してカメラを起動しています。

- (void)viewDidLoad {
    self.imgPicker = [[UIImagePickerController alloc] init];
    self.imgPicker.sourceType = UIImagePickerControllerCameraDeviceFront;
    self.imgPicker.delegate = self;     
}

- (IBAction)grabCamera {
    [self presentModalViewController:self.imgPicker animated:YES];
}

カメラがデフォルトでバックカメラではなくiPhone4のフロントカメラを使用するようにするにはどうすればよいですか? DeviceFrontを試してみましたが無駄でした。

また、grabCameraを押した後、このカメラの上にサブビュー(ハーフサイズ)を追加するにはどうすればよいですか? MainWindow.xibにこのサブビューがある場合、presentModalViewControllerコードを言った後にaddSubviewと言ってみましたが、機能しませんでした... NSTimerを作成し、カメラの表示が完全に表示された後にaddSubviewをロードする必要がありますか?他のものを使用する必要があります(CSSのz-indexと同様) 2番目の質問に対する答えはimgPicker.cameraOverlayView = viewName;です。

皆さんありがとう!

31
Albert Renshaw

UIImagePickerControllerCameraDeviceFrontsourceTypeプロパティの有効な列挙型ではありません。 sourceTypeプロパティは、カメラを使用しているかフォトライブラリを使用しているかを定義します。代わりに、cameraDeviceプロパティを設定する必要があります。

Objective-C

self.imgPicker.sourceType = UIImagePickerControllerSourceTypeCamera;
self.imgPicker.cameraDevice = UIImagePickerControllerCameraDeviceFront;

スウィフト2

imgPicker.sourceType = .Camera
imgPicker.cameraDevice = .Front

スウィフト3

imgPicker.sourceType = .camera
imgPicker.cameraDevice = .front
65
MattyG