Ios iPhone/iPad摄像头覆盖视图自动旋转问题UIImagePickerController
根据苹果公司的说法,我们不能将Ios iPhone/iPad摄像头覆盖视图自动旋转问题UIImagePickerController,ios,objective-c,iphone,xcode,uiimagepickercontroller,Ios,Objective C,Iphone,Xcode,Uiimagepickercontroller,根据苹果公司的说法,我们不能将UIImagePickerController类划分为子类。从文档中: 要点:UIImagePickerController类支持纵向模式 只有此类旨在按原样使用,不支持 子类化。此类的视图层次结构是私有的,不能 可以修改,但有一个例外。可以将自定义视图指定给 cameraOverlayView属性,并使用该视图显示其他视图 提供信息或管理摄像机界面之间的交互 还有你的代码 但是,如果我们想在相机上覆盖一个视图,我们可以按如下方式操作: imagePickerCon
UIImagePickerController
类划分为子类。从文档中:
要点:UIImagePickerController类支持纵向模式
只有此类旨在按原样使用,不支持
子类化。此类的视图层次结构是私有的,不能
可以修改,但有一个例外。可以将自定义视图指定给
cameraOverlayView属性,并使用该视图显示其他视图
提供信息或管理摄像机界面之间的交互
还有你的代码
但是,如果我们想在相机上覆盖一个视图,我们可以按如下方式操作:
imagePickerController.cameraOverlayView = overlayView
实现摄影机覆盖视图后,视图会在iPad中自动调整自身。然而,iPhone并非如此
查询:
我们可以像在iPad中一样在iPhone中设置摄像头的自动旋转吗
如果不是,使用
UIDeviceOrientationIDChangeNotification
旋转摄像机覆盖视图的最佳方式是什么?您可以将UIImagePickerController子类化并实例化它。苹果公司说你不应该因为其他原因而把它归类。您不能更改UIImagePickerController
的默认控件,如交换相机、关闭闪光灯、拍摄照片或视频等。为此,您必须创建overlay视图
,并应设置为UIImagePickerController
的cameraOverlayView
。就是这样,否则您可以子类化UIImagePickerController
现在,您的问题的解决方案是:
子类UIImagePickerController
并在该类中实现以下两个方法:
-(BOOL)shouldAutorotate{
return NO;
}
-(UIInterfaceOrientationMask)supportedInterfaceOrientations{
return UIInterfaceOrientationMaskPortrait;
}
然后实例化该类,而不是UIImagePickerController
您的OverlyView的方向问题将得到解决。它将始终保持纵向模式