cameraOverlayView выше анимация затвора

У меня есть прозрачный вид с прямоугольником, нарисованным на нем с помощью CoreGraphics. Когда камера запускает пользовательский вид наложения выше анимации затвора. То, что вы видите, это стандартный затвор камеры с настраиваемым прямоугольником над ним. Как мне заставить его идти в нужном месте, под анимацией затвора? Я просмотрел другой пример кода, но это для ОС 3.1 и, похоже, не делает ничего по-другому.

Вот мой код:

-(IBAction)cameraButton{ if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerCameraDeviceRear]){ UIImagePickerController *picker = [[UIImagePickerController alloc] init]; picker.delegate = self; picker.sourceType = UIImagePickerControllerSourceTypeCamera; //Add the OverlayView with the custom Rectangle CGRect overlayFrame = CGRectMake(0.0f, 0.0f, 320.0f, 480.0f); OverlayView *overlayView = [[OverlayView alloc]initWithFrame:overlayFrame]; picker.cameraOverlayView = overlayView; [overlayView release]; [self presentModalViewController:picker animated:YES]; [picker release]; } } 

4 Solutions collect form web for “cameraOverlayView выше анимация затвора”

На iPad эта проблема не существует, и по умолчанию ослепительный просмотр позади затвора затвора. Но на iPhone наложение появляется спереди.

Я нашел решение, которое сработало для меня.

Вы должны установить свой оверлейный просмотр как подпункт в этом методе:

 - (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated { if (!viewController) return; UIView* controllerViewHolder = viewController.view; UIView* controllerCameraView = [[controllerViewHolder subviews] objectAtIndex:0]; UIView* controllerPreview = [[controllerCameraView subviews] objectAtIndex:0]; [controllerCameraView insertSubview:self.overlayView aboveSubview:controllerPreview]; } 

Надеюсь, поможет

Оригинальный источник: http://www.alexcurylo.com/blog/2009/06/18/uiimagepickercontroller-in-3-0/

Вы можете не делать ничего другого, кроме того, что вы уже делаете; если iOS решит поместить ваш оверлейный вид поверх затвора, вам просто придется жить с ним (если вы не хотите рисковать получить отказ от магазина приложений).

В качестве несовершенного обходного пути вы можете запустить свой оверлей с альфа = 0, а затем установить альфу 1 секунду или две позже. Но нет установленного периода времени, когда затвор появляется перед «открытием» (я думаю, это зависит от того, сколько времени потребуется для инициализации аппаратного обеспечения камеры), поэтому иногда ваш интерфейс может не появляться до позднего времени, а иногда может появляться слишком рано.

Начиная с 4.3.3 анимация затвора прерывается, потому что элементы отображаются сверху, а затем привязываются под началом анимации. Я подал это как радар: http://openradar.appspot.com/radar?id=1204401

Я ответил на аналогичный вопрос. Что работало для меня (в iOS 6), устанавливалось CameraOverlayView в navigationController: willShowViewController: анимированный.

 - (void) navigationController:(UINavigationController*) navigationController willShowViewController:(UIViewController*) viewController animated:(BOOL) animated { self.imagePickerController.cameraOverlayView = ...; // your camera overlay view } 
  • Разрешить UIImagePickerController редактировать видео, но не изображения
  • ipad UIImagePickerController videoQuality
  • Изображения, сделанные из ролика камеры, занимают много времени для отображения в uitableview
  • Как загрузить изображение, которое было взято из UIImagePickerController
  • Появится UIImagePickerController, но камера не запускается на iOS 5
  • UIImagePickerController - изображение обреза для круга
  • Захват фотографий с определенным разрешением с помощью UIImagePickerController
  • Сохранение / получение JPEG из галереи пользователя без рекомпрессии
  • UIImagePickerController + Cropping: что позволяет делать Editing, а что нет?
  • UIPopoverController & UIImagePickerControl: «Попутчики не могут быть представлены с точки зрения, которая не имеет окна»
  • На экране повторного воспроизведения появляется камера UIImagePickerOverlayView
  • PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.