iPhone / iPad相机叠加查看AutoRotation问题UIImagePickerController

时间:2015-06-17 11:50:38

标签: ios objective-c iphone xcode uiimagepickercontroller

根据Apple的说法,我们不能继承UIImagePickerController类。来自文档:

  

重要说明:UIImagePickerController类支持纵向模式   只要。此类旨在按原样使用,不支持   子类。此类的视图层次结构是私有的,不得使用   被修改,但有一个例外。您可以为自定义视图分配   cameraOverlayView属性并使用该视图来显示其他内容   信息或管理相机界面之间的交互   和你的代码。

但是如果我们想在相机上叠加视图,我们可以按如下方式进行:

imagePickerController.cameraOverlayView = overlayView

实施相机叠加视图后,视图会在iPad中自动调整。但是,iPhone不是这种情况。

查询: 我们可以像在iPad中那样在iPhone中设置cameraOverlayView的自动旋转吗?

如果没有,使用UIDeviceOrientationDidChangeNotification

旋转cameraOverlayView的最佳方法是什么

1 个答案:

答案 0 :(得分:0)

您可以继承UIImagePickerController并可以实例化它。苹果说你不应该将它分类为其他原因。您无法更改UIImagePickerController的默认控件,例如交换相机,关闭闪光灯,拍摄照片或视频等。为此,您必须创建overlay view并设置为cameraOverlayView UIImagePickerController 1}}。就是这样,否则你可以继承UIImagePickerController

所以,现在解决你的问题:

子类UIImagePickerController并在该类中实现以下两个方法,如

 -(BOOL)shouldAutorotate{

    return NO;
}
-(UIInterfaceOrientationMask)supportedInterfaceOrientations{

    return UIInterfaceOrientationMaskPortrait;
}

然后实例化该类而不是UIImagePickerController

您的overlayview的方向问题将得到解决。它将始终保持纵向模式。