将iOS UIImagePickerController设置为横向模式以进行外部显示

时间:2017-02-16 18:06:44

标签: ios swift camera orientation uiimagepickercontroller

我正在为艺术装置创建一个应用程序,它将模仿Apple自己的相机应用程序,但稍作修改(轻微的视频显示参数,仅限前置摄像头等)。一切都在工作,但是我将相机连接到外接显示器,因此需要它以横向模式显示,而不是纵向模式。我通过Lightning将它连接到HDMI。

我使用的是UIImagePickerController而不是AVFoundation,因为默认情况下它会进行面部检测,这与Apple自己的面部检测相同(面部周围的黄色方块)。我觉得复制AV基础中的人脸检测会带来很大的麻烦。但是,UIImagePickerController只是拒绝以横向模式显示。这是关于它的参考信息:

  

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

来自:https://developer.apple.com/reference/uikit/uiimagepickercontroller

我还想做什么?我已经在使用cameraOverlayView,但到目前为止还没有解决问题?我可以改变HDMI显示器的内容吗?由于我不会将此应用程序提交给Apple,因此我不需要遵循他们的标准,只要我可以在运行10.1.1的自己的iPhone 7 Plus上安装它。

这是我当前的代码,以防它有用:

        let imagePicker = UIImagePickerController()
        let myView = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 200))
        myView.backgroundColor = UIColor(colorLiteralRed: 0.5, green: 1.0, blue: 0.2, alpha: 1)
        myView.alpha = 0.1
        imagePicker.delegate = self
        imagePicker.sourceType =
            UIImagePickerControllerSourceType.camera

        imagePicker.cameraDevice = UIImagePickerControllerCameraDevice.front
        imagePicker.mediaTypes = [kUTTypeImage as String]
        imagePicker.allowsEditing = false
        imagePicker.videoQuality = UIImagePickerControllerQualityType.type640x480
        //imagePicker.showsCameraControls = false
        imagePicker.cameraOverlayView = myView
        imagePicker.modalPresentationStyle = UIModalPresentationStyle.currentContext

        self.present(imagePicker, animated: true,
                     completion: nil)

0 个答案:

没有答案