UIImagePickerController - Как получить доступ к фронтальной камере по умолчанию? - PullRequest
28 голосов
/ 21 января 2012

Я поднимаю камеру со следующим кодом из моего 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, я попытался просто сказать addSubview после произнесения кода presentModalViewController, но это не сработало ... Нужно ли создавать NSTimer и загружать addSubview после того, как дисплей камеры полностью представлен, илинужно использовать что-то еще (аналогично z-index в CSS) Ответ на второй вопрос: imgPicker.cameraOverlayView = viewName;

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

1 Ответ

64 голосов
/ 21 января 2012

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...