iOS6 では、デバイスが横向きモードのときに UIImagePicker の上で UIAlertViews を回転させるにはどうすればよいですか? それらは縦向きでのみ読み込まれますが、アプリは横向きのみです。カスタム cameraOverlayView (UIView) を手動で回転させる必要がありましたが、アラートでこれを行う方法がわかりません。
2 に答える
問題は、UIImagePickerController がポートレート モードのみをサポートしていることです。
Apple のドキュメントから UIImagePickerController クラスは、ポートレート モードのみをサポートします。このクラスはそのまま使用することを意図しており、サブクラス化はサポートしていません。このクラスのビュー階層はプライベートであり、1 つの例外を除いて変更してはなりません。カスタム ビューを cameraOverlayView プロパティに割り当て、そのビューを使用して追加情報を表示したり、カメラ インターフェースとコード間の相互作用を管理したりできます。
そのため、ピッカーが開いている場合、デバイスの向きは縦向きとして報告され、UIAlertView は縦向きモードで表示されます。確かに、何らかの「ハック」を使用して UIAlertView を回転させることはできますが、アプリはおそらく審査中に拒否されるでしょう。
唯一の「合法的な」方法は、独自の画像ピッカーを作成することです
これを行うには、クラスをサブクラス化する必要がありますUIImagePicker
。
@interface yourImagePicker :UIImagePicker
{
}
@end
shouldAutoRotate
実装でメソッドを実装し、ランドスケープモードのみを返す必要があります
@implementation yourImagePicker
- (BOOL)shouldAutorotate
{
return [[UIDevice currentDevice] orientation] != UIInterfaceOrientationPortrait;
}
@end
yourImagePicker
そして、代わりにインスタンスを作成する必要がありますUIImagePicker