【问题标题】:UIImagePicker Front Camera strange behavior on orientation in iPadUIImagePicker 前置摄像头在 iPad 方向上的奇怪行为
【发布时间】:2012-07-17 10:24:09
【问题描述】:

场景

倒计时 3 秒后自动从Front camera 捕获图像的应用。 一切都按预期进行。

代码

//在viewDidLoad

 if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]){
    imagePicker = [[UIImagePickerController alloc] init];
        self.imagePicker.sourceType =  UIImagePickerControllerSourceTypeCamera;
self.imagePicker.cameraDevice = UIImagePickerControllerCameraDeviceFront;
self.imagePicker.delegate = self;
self.imagePicker.showsCameraControls = NO;
[self.imagePicker.view setFrame:kAppFrame];
[self.view addSubview:self.imagePicker.view];
[self.view bringSubviewToFront:self.imagePicker.view];
}

问题 我从来没有告诉 ipad 使用它的后置设备。在某些情况下,后置摄像头仍然会启动。

复制步骤

  1. 把相机拿在Landscape orientation
  2. 点击一张照片(将带您到下一个屏幕,在导航控制器中推送)
  3. 在下一个屏幕中,将 ipad 向face up orientation 倾斜一半
  4. 回到摄像头屏幕,您可以使用后置摄像头看到它。

这是一种非常奇怪的行为,我什至无法理解其原因。

【问题讨论】:

  • 你能说得更具体一点吗?
  • @CocoaMatters 只需在下一个屏幕(从相机屏幕推送)中倾斜 ipad 并返回相机屏幕就是问题所在。没有技术/更好的方法来告诉第 3 步。

标签: objective-c ipad camera


【解决方案1】:

检查您的代码self.imagePicker.cameraDevice = UIImagePickerControllerCameraDeviceFront; 定义您打开设备前面板的行。

现在您的第二个问题:我不确定,但您必须将图像旋转 90 度。可能是当您获得图像时,它会处于纵向模式。

【讨论】:

  • ,是的,图像旋转了 90 度,但我写了一个类别来调整它的方向,这不再是问题了。
  • 我不明白您在答案的前两行中到底想说什么。有什么我遗漏或做错了什么。
  • 我在 iOS6 中使用UIImagePickerControllerCameraDeviceFront,它仍在激活后置摄像头...
  • @Clay 抱歉,我没有任何支持 iOS 6 的设备。所以我帮不了你
【解决方案2】:

看来我找到了解决方案。 只需将整个代码从 viewDidLoad 方法移动到 viewWillAppear

在它以特定方向出现之前,我似乎非常依赖视图。将代码放入viewWillAppear 可以保证视图实际上已准备好其方向设置。我现在可以在上面放任何东西了。

我知道这不是正确的答案,但这是我从场景中得出的。欢迎任何修改/更正。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-08
    • 2018-08-21
    • 1970-01-01
    • 1970-01-01
    • 2020-11-15
    • 2014-11-16
    • 1970-01-01
    • 2020-09-17
    相关资源
    最近更新 更多