【问题标题】:iPhone/iPad Camera Overlay View AutoRotation Issue UIImagePickerControlleriPhone/iPad 相机覆盖视图自动旋转问题 UIImagePickerController
【发布时间】:2015-06-17 11:50:38
【问题描述】:

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

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

但是如果我们想在相机上叠加一个视图,我们可以这样做:

imagePickerController.cameraOverlayView = overlayView

实现相机叠加视图后,视图会在 iPad 中自动调整。但是,iPhone 并非如此。

查询: iPhone中cameraOverlayView可以像iPad一样设置自动旋转吗?

如果不是,使用UIDeviceOrientationDidChangeNotification 旋转cameraOverlayView 的最佳方式是什么

【问题讨论】:

    标签: ios objective-c iphone xcode uiimagepickercontroller


    【解决方案1】:

    你可以继承UIImagePickerController 并且可以实例化它。苹果说你不应该继承它是出于其他原因。您不能更改UIImagePickerController 的默认控件,例如交换相机、关闭闪光灯、拍照或录像等。为此,您必须创建overlay view 并应设置为cameraOverlayViewUIImagePickerController。就是这样,否则你可以继承UIImagePickerController

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

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

     -(BOOL)shouldAutorotate{
    
        return NO;
    }
    -(UIInterfaceOrientationMask)supportedInterfaceOrientations{
    
        return UIInterfaceOrientationMaskPortrait;
    }
    

    然后实例化该类而不是 UIImagePickerController

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-17
      • 1970-01-01
      相关资源
      最近更新 更多