2

私の問題に関するほぼすべての投稿を読みましたが、どの解決策も私のアプリでは機能しないようです。

そのため、View Controller からモーダルに表示されるカスタム カメラ ビュー (ツールバーのボタンとオーバーレイを使用) を使用します。私のアプリは、向きの左右の横向きのみをサポートしています。そして、カメラビューが表示されているときにカメラビューが自動回転するのを止めたいです。ビュー コントローラーとアプリ デリゲートに自動回転に必要なすべてのメソッドを配置しました。plist ファイルも確認しましたが、サポートされている回転は正しいです。しかし、デバイスを回転させると、カメラ ビューが任意の回転 (縦向きと横向き) に回転し続け、その結果、オーバーレイとツールバーが正しく配置されません。NSLog を shouldAutoRotate メソッドに配置しようとしたため、カメラ ビューの向きも確認できませんが、まったく呼び出されません。

では、カスタム カメラ ビューで回転を確認するにはどうすればよいでしょうか。そして、どうすれば回転せずに静止するように強制できますか?

私のコードが必要な場合は、ここに投稿します。誰かが私を助けてくれれば、今とてもイライラしているので、とても感謝しています。

ありがとうございました。乾杯。

4

3 に答える 3

0

UINavigationControllerのカテゴリを作成する

@interface UINavigationController(autoRotation)

-(BOOL)shouldAutoRotate;

@end

@implementation UINavigationController

-(BOOL)shouldAutoRotate{

  return [[self.viewControllers lastobject] shouldAutoRoatate];

}

-(NSUInteger)supportedInterfaceOrientations {

  return [[self.viewControllers lastobject] supportedInterfaceOrientations];

}

@end

対応するView Controllerにこれら2つのメソッドを実装し、正確に必要な方向を返します....

于 2013-05-08T05:38:01.007 に答える
0

xcode -> ファイル -> 新しいファイル 左ペインで cocotouch を選択 Objective-C カテゴリを選択 -> 次にドロップダウンからUIImageImagePickerControllerの名前を付けるピッカーカテゴリを選択

輸入

@interface UIImagePickerController (ピッカー)

-(BOOL)AutoRotate が必要です。-(NSUInteger)supportedInterfaceOrientations;

@終わり

import "UIImagePickerController+picker.h"

@implementation UIImagePickerController (ピッカー)

-(BOOL)shouldAutoRotate{

    return yourOrientation;

}

-(NSUInteger)supportedInterfaceOrientations {

    return yourInteger;

}

@終わり

この後、デバイスの向きが変更されたとき、この時点でメソッド shouldAutoRotate が UINavigationController カテゴリから呼び出されます。カメラビューが表示されているかどうかを確認する必要がある場合は、ピッカーの shouldAutoRotate を呼び出す必要があります。

次のコードを参照してください

ビューコントローラーの shouldAutoRotate で

-(BOOL)shouldAutoRotate{

   if([self presentingViewController])// Camera is present 
         return [instanceOfUIImagePickerController shouldAutoRotate];
   return yourOrientaionNeededForThisVC;

}

于 2013-05-08T09:04:32.373 に答える