UIImagePickerController - 默认情况下如何访问前置摄像头?

时间:2012-01-21 01:43:56

标签: ios objective-c swift camera uiimagepickercontroller

我使用ViewController中的以下代码调出相机:

- (void)viewDidLoad {
    self.imgPicker = [[UIImagePickerController alloc] init];
    self.imgPicker.sourceType = UIImagePickerControllerCameraDeviceFront;
    self.imgPicker.delegate = self;     
}

- (IBAction)grabCamera {
    [self presentModalViewController:self.imgPicker animated:YES];
}

如何制作相机默认使用iPhone4的前置摄像头而不是后置摄像头?我试过DeviceFront无济于事。

此外,如何在按下grabCamera后在此相机的顶部添加子视图(半尺寸)? 如果我在我的MainWindow.xib中有这个子视图我在说完presentModalViewController代码之后尝试说addSubview但它没有用...我需要创建一个NSTimer并在完全呈现相机显示后加载addSubview或者我需要使用别的东西(类似于CSS中的z-index)第二个问题的答案是imgPicker.cameraOverlayView = viewName;

全部谢谢!

1 个答案:

答案 0 :(得分:63)

UIImagePickerControllerCameraDeviceFront不是sourceType属性的有效枚举。 sourceType属性定义您是使用相机还是照片库。您需要设置cameraDevice属性。

目标C

self.imgPicker.sourceType = UIImagePickerControllerSourceTypeCamera;
self.imgPicker.cameraDevice = UIImagePickerControllerCameraDeviceFront;

Swift 2

imgPicker.sourceType = .Camera
imgPicker.cameraDevice = .Front

Swift 3

imgPicker.sourceType = .camera
imgPicker.cameraDevice = .front