У меня есть UIImagePickerController, вызываемый с камерой sourceType и 80% времени, когда я получаю черный предварительный просмотр. Если я подожду, скажем, около 30 секунд, я получаю хороший предварительный просмотр, и он будет полезен примерно в 50% случаев, тогда он может снова сломаться.
Изображение, о котором идет речь, очень похоже на это. Камера iDevice показывает черный вместо предварительного просмотра
Другие люди подразумевают, что GCD может вызвать некоторые проблемы с камерой, и что обновление пользовательского интерфейса при загрузке сборщика изображений прерывает его. Я помещаю блокировку на каждый блок GCD, который вызывает основной поток для этой цели.
Это пример изображения, которое вращается для имитации индикатора активности.
-(void)animateLoadingImage {
if (isMainThreadBlocked) {
return;
}
self.radians += M_PI_4 / 2;
[UIView beginAnimations:@"progress rotation" context:nil];
[UIView setAnimationDuration:.1];
self.loadingImageView.transform = CGAffineTransformMakeRotation(self.radians);
[UIView commitAnimations];
}
PS: Снимок снимка, который не был отображен, приводит к пустым моментальным снимкам. Убедитесь, что ваше представление было просмотрено как минимум один раз перед моментальным снимком или моментальным снимком после обновлений экрана.
Это показывает ВСЕГДА, когда я пытаюсь открыть контроллер выбора, но он показывает его, даже если камера правильно отображает предварительный просмотр. Я не думаю, что ошибка здесь, но это также сильно меня беспокоит.