UIImagePicker Front Camera在iPad上的方向奇怪的行为

时间:2012-07-17 10:24:09

标签: objective-c ipad camera

方案

在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. 回到摄像机屏幕后,您可以使用后置摄像头看到它。
  5. 这是一种非常奇怪的行为,我甚至无法理解其原因。

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

看起来我在视线出现之前依赖于一定的方向。将代码放在viewWillAppear中可以保证视图实际上已准备好其方向设置。我现在可以把它放在上面了。

我知道这不是正确的答案,但这是我在场景中做出的。任何修改/更正都是最受欢迎的。