これは、iPad カメラを使用するのは初めてで、UIImagePickerController に問題があり、ポートレート モードにロックできないようです。
まず、UIImagePickerController をサブクラス化して実装しました
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{
return (interfaceOrientation==UIInterfaceOrientationPortrait);
}
しかし、UIImagePickerControllerをサブクラス化してはならないので、それは役に立たないことを読みました。
次に試したのは、ピッカー オーバーレイ経由でした。そのためのクラスを作成し、同じメソッドを実装しました。それでも機能しません。ピッカーにオーバーレイを表示するたびに、メソッドが正確に 1 回呼び出されるようです。
- (void)viewDidLoad{
[super viewDidLoad];
_imagePicker = [[UIImagePickerController alloc] init];
[_imagePicker setDelegate:self];
[_imagePicker setSourceType:UIImagePickerControllerSourceTypeCamera];
[_imagePicker setCameraDevice:UIImagePickerControllerCameraDeviceFront];
[_imagePicker setCameraCaptureMode:UIImagePickerControllerCameraCaptureModePhoto];
[_imagePicker setAllowsEditing:YES];
[_imagePicker setShowsCameraControls:YES];
[_imagePicker setNavigationBarHidden:YES];
[_imagePicker setToolbarHidden:YES];
[_imagePicker setWantsFullScreenLayout:YES];
CameraOverlay *_overlay = [[CameraOverlay alloc] init];
[_overlay set_imagePicker:_imagePicker];
[_imagePicker setCameraOverlayView:_overlay.view];
}
-(IBAction)takePicture:(id)sender {
[self presentModalViewController:_imagePicker animated:YES];
}
提示しているView Controllerの向きをロックして、別のことを試しましたが、UIImagePickerControllerはまだすべての方向に回転しています。私が気付いたもう 1 つのことは、向きを変更すると UIImagePickerController の設定も変更されることです。カメラをフロントカメラに設定し、それで写真を撮り、iPad を回転させて別の写真を撮ろうとすると、カメラはリアカメラに設定されます。非常に奇妙な。
カメラの向きをロックする方法について何か提案をお願いします。:)
編集:UIImagePickerControllerとUIPickerViewを混同し、修正しました:)