1

これは、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を混同し、修正しました:)

4

1 に答える 1

1

AVFoundationを使用して、いつでも独自のカメラの実装を展開できます。

于 2012-06-14T17:29:12.417 に答える