Я экспериментирую с попыткой иметь встроенную камеру в пользовательском расширении клавиатуры iOS8 с включенным полным доступом. Все работает так, как я ожидал бы, кроме того, что встроенное представление UIImagePickerController всегда черное, за исключением элементов управления наложением. Всплывающие дисплеи «Это приложение будет хотеть получить доступ к вашей камере», и доступ определен определенно (трижды проверен).iOS8 UIImagePickerController в пользовательском расширении клавиатуры
В XCode [UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]
возвращает true, а интерфейс UIImagePickerController, кроме самой камеры, отображается правильно (например, элементы управления наложением камеры).
Единственная ошибка/предупреждение я получаю от XCode является следующее:
мгновенных снимков вид, что не было вынесено результаты в пустой снимок. Убедитесь, что ваше представление было просмотрено как минимум один раз перед моментальным снимком или снимком после обновлений экрана.
Я попытался добавить таймауты к инициализации камеры, поскольку предложили несколько других потоков stackoverflow, но ничего не исправляет это предупреждение или проблему с черным экраном.
- (void)viewDidAppear:(BOOL)animated
{
[self performSelector:@selector(loadCamera) withObject:nil afterDelay:0.3];
}
- (void)loadCamera
{
self._picker = [[UIImagePickerController alloc] init];
self._picker.sourceType = UIImagePickerControllerSourceTypeCamera;
self._picker.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto;
self._picker.cameraDevice = UIImagePickerControllerCameraDeviceRear;
self._picker.allowsEditing = NO;
self._picker.showsCameraControls = YES;
self._picker.view.userInteractionEnabled = YES;
self._picker.delegate = self;
self._picker.view.frame = self.view.bounds;
[self.view addSubview:self._picker.view];
[self._picker didMoveToParentViewController:self];
}
Я также попытался заменить последние 3 строки со следующим с тем же результатом:
[self presentViewController:self._picker animated:YES completion:^{
NSLog(@"completed");
}];
Кто-нибудь знает, если это возможно встроить UIImagePickerController внутри собственного расширения клавиатуры iOS8, и если да, то что я могу делать неправильно?