横向模式下的UIImagePicker - 如何旋转UIAlertViews?

时间:2012-10-31 17:45:55

标签: ios xcode

在iOS6中,当设备处于横向模式时,如何在UIImagePicker上旋转UIAlertViews?它们只是纵向加载,但应用程序只是横向。我不得不手动旋转自定义cameraOverlayView(UIView),但我不知道如何使用警报执行此操作?

2 个答案:

答案 0 :(得分:1)

问题是UIImagePickerController仅支持纵向模式:

来自Apple文档 UIImagePickerController类仅支持纵向模式。此类旨在按原样使用,不支持子类化。此类的视图层次结构是私有的,不得修改,但有一个例外。您可以将自定义视图分配给cameraOverlayView属性,并使用该视图显示其他信息或管理相机界面与代码之间的交互。

因此,当选择器打开时,设备方向报告为纵向,UIAlertView以纵向模式显示。 当然,使用一些“黑客”你可以旋转UIAlertView,但该应用程序可能会在审查期间被拒绝。

唯一“合法”的方式是创建自己的图像选择器

答案 1 :(得分:0)

为此,您需要继承UIImagePicker类。

@interface yourImagePicker :UIImagePicker 
{
}
@end

您需要在实现中实现shouldAutoRotate方法并仅返回横向模式

@implementation yourImagePicker 

- (BOOL)shouldAutorotate
{
    return [[UIDevice currentDevice] orientation] != UIInterfaceOrientationPortrait;
}
@end

您需要创建yourImagePicker个实例而不是UIImagePicker