1

设想

Front camera倒计时 3 秒后自动捕捉图像的应用程序。一切都按预期工作。

代码

//在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. 回到摄像头屏幕,您可以使用后置摄像头看到它。

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

4

2 回答 2

0

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

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

于 2012-07-18T06:46:01.657 回答
0

看起来我已经找到了解决方案。只是将整个代码移动到viewWillAppearfromviewDidLoad方法。

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

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

于 2012-09-23T19:07:59.017 回答