1

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

4

2 回答 2

1

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

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

So, when the picker is open, the device orientation is reported as portrait, and the UIAlertView are showed in portrait mode. 当然,使用一些“hack”你可以旋转 UIAlertView,但应用程序可能会在审查期间被拒绝。

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

于 2012-10-31T18:11:52.950 回答
0

为此,您需要对该类进行子UIImagePicker类化。

@interface yourImagePicker :UIImagePicker 
{
}
@end

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

@implementation yourImagePicker 

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

你需要创建yourImagePicker实例而不是UIImagePicker

于 2012-10-31T19:04:12.547 回答