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 } 
  • iOS 4.3 изменила преобразование в режиме просмотра камеры на UIImagePickerController
  • Обрезка UIImagePickerControllerOriginalImage с использованием UIImagePickerControllerCropRect возвращает неправильное изображение
  • Могу ли я иметь камеру, которая не представлена ​​модально? Как?
  • UIImagePickerController не запрашивает разрешения для iOS 9
  • Приложение iOS7 iPad для iPad, использующее UIImagePickerController
  • UIImagePickerController Cropping?
  • UIImagePickerController застрял на сжатии видео на симуляторе iOS10 после выбора видео
  • Как выбрать часть изображения, обрезать и сохранить его с помощью Swift?
  • ipad UIImagePickerController videoQuality
  • Приложение разрешено только для портрета, но UIImagePickerController вращается в iOS6
  • Проблема с размером камеры для камеры UIImagePickerController
  • Interesting Posts

    Соответствует ли UITableViewController UITableViewDataSource, UITableViewDelegate

    как добавить UINavigationController UIToolbar в верхнюю часть представления не внизу

    Как определить, включена ли библиотека фотографий iCloud?

    Не удалось получить данные в реальном времени для Google Analytics на iPhone

    Как изменить размер шрифта текста в UISegmentedControl?

    Как объединить две инструкции SQLite SELECT с двумя условиями

    CTCallCenter не обновляет свойство currentCalls после того, как я установил callEventHandler

    На iOS, как растровые изображения CALayer (объекты CGImage) отображаются на графической карте?

    Формат транзакции формата SKPaymentTransactionIdentifier

    Найти ВСЕ классы какао, которые являются одиночными?

    Преобразование строки в тип DATE в swift 3

    Apple In-app покупка transaction_id одной покупки иногда меняется

    Отпустите NSMutableArray при использовании ARC

    CloudKit получает множественное уведомление о создании записи

    Изображения не могут содержать альфа-каналы или прозрачные пленки

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.