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

Alb*_*haw 31 camera objective-c uiimagepickercontroller ios swift

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

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

- (IBAction)grabCamera {
    [self presentModalViewController:self.imgPicker animated:YES];
}
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能让相机默认使用iPhone4的前置摄像头而不是后置摄像头?我试过DeviceFront无济于事.

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

谢谢大家!

Mat*_*tyG 69

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

Objective-C的

self.imgPicker.sourceType = UIImagePickerControllerSourceTypeCamera;
self.imgPicker.cameraDevice = UIImagePickerControllerCameraDeviceFront;
Run Code Online (Sandbox Code Playgroud)

斯威夫特2

imgPicker.sourceType = .Camera
imgPicker.cameraDevice = .Front
Run Code Online (Sandbox Code Playgroud)

斯威夫特3

imgPicker.sourceType = .camera
imgPicker.cameraDevice = .front
Run Code Online (Sandbox Code Playgroud)