根据Apple的说法,我们不能继承UIImagePickerController
类。来自文档:
重要说明:UIImagePickerController类支持纵向模式 只要。此类旨在按原样使用,不支持 子类。此类的视图层次结构是私有的,不得使用 被修改,但有一个例外。您可以为自定义视图分配 cameraOverlayView属性并使用该视图来显示其他内容 信息或管理相机界面之间的交互 和你的代码。
但是如果我们想在相机上叠加视图,我们可以按如下方式进行:
imagePickerController.cameraOverlayView = overlayView
实施相机叠加视图后,视图会在iPad中自动调整。但是,iPhone不是这种情况。
查询: 我们可以像在iPad中那样在iPhone中设置cameraOverlayView的自动旋转吗?
如果没有,使用UIDeviceOrientationDidChangeNotification
答案 0 :(得分:0)
您可以继承UIImagePickerController
并可以实例化它。苹果说你不应该将它分类为其他原因。您无法更改UIImagePickerController
的默认控件,例如交换相机,关闭闪光灯,拍摄照片或视频等。为此,您必须创建overlay view
并设置为cameraOverlayView
UIImagePickerController
1}}。就是这样,否则你可以继承UIImagePickerController
。
所以,现在解决你的问题:
子类UIImagePickerController
并在该类中实现以下两个方法,如
-(BOOL)shouldAutorotate{
return NO;
}
-(UIInterfaceOrientationMask)supportedInterfaceOrientations{
return UIInterfaceOrientationMaskPortrait;
}
然后实例化该类而不是UIImagePickerController
。
您的overlayview的方向问题将得到解决。它将始终保持纵向模式。