0

私はiPadアプリに取り組んでいます。右のバーボタンをクリックすると、以下のようなアクションが表示されます:

    -(IBAction)camerabuttonAction:(id)sender
{
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
   picker.sourceType = UIImagePickerControllerSourceTypeCamera;
    picker.delegate = self;

    self.popoverController = [[UIPopoverController alloc] initWithContentViewController:picker];
   [self.popoverController presentPopoverFromRect:CGRectMake(50, -250, 500, 300) inView:appDelegate.splitview.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
}

私の問題は、ボタンをクリックするとランドスケープモードになっているときです。カメラはポートレート モードで表示されます (画像は反転モードで表示されます)。しかし、iPad を振ると、LandScape に表示されます。

ios6 の向きについては、以下の方法を使用していますが、UIImagePickerControllerSourceTypeCamera に関連するものは何も書きませんでした

    - (void)viewWillLayoutSubviews
{
if([self interfaceOrientation] == UIInterfaceOrientationPortrait||[self interfaceOrientation] ==UIInterfaceOrientationPortraitUpsideDown)
    {
}
    else if ([self interfaceOrientation] == UIInterfaceOrientationLandscapeLeft||[self interfaceOrientation] == UIInterfaceOrientationLandscapeRight)
    {
}

}

    -(NSUInteger)supportedInterfaceOrientations
{

    return UIInterfaceOrientationLandscapeLeft | UIInterfaceOrientationPortrait;
}
4

1 に答える 1

3

これを行うべきではありません。Apple ドキュメントからの抜粋:

重要: UIImagePickerController クラスは、ポートレート モードのみをサポートします。このクラスはそのまま使用することを意図しており、サブクラス化はサポートしていません。このクラスのビュー階層はプライベートであり、1 つの例外を除いて変更してはなりません。カスタム ビューを cameraOverlayView プロパティに割り当て、そのビューを使用して追加情報を表示したり、カメラ インターフェースとコード間の相互作用を管理したりできます。

ここにあります:http://developer.apple.com/library/ios/#documentation/uikit/reference/UIImagePickerController_Class/UIImagePickerController/UIImagePickerController.html

于 2013-03-20T11:06:38.070 に答える