Подтвердить что ты не робот

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 безрезультатно.

Также, как я могу добавить subview (половинный размер) на этой камере после нажатия grabCamera? Если у меня есть это subview в моем MainWindow.xib, я попробовал просто сказать addSubview, сказав код currentModalViewController, но он не сработал... Нужно ли мне создавать NSTimer и загружать addSubview после того, как дисплей камеры будет полностью представлен или я буду нужно использовать что-то еще (аналогично z-index в CSS) Ответ на второй вопрос: imgPicker.cameraOverlayView = viewName;

Спасибо всем!

4b9b3361

Ответ 1

UIImagePickerControllerCameraDeviceFront не является допустимым перечислением для свойства sourceType. Свойство sourceType определяет, используете ли вы камеру или библиотеку фотографий. Вам нужно установить свойство cameraDevice.

Objective-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