2012-06-24 3 views
8

Я работаю над iPhone-приложением, которое использует оверлейный просмотр камеры на UIImagePickerController. Тем не менее, проблема, с которой я сталкиваюсь, заключается в том, что мой оверлей по-прежнему отображается на экране, когда снимок сделан, и появляется экран предварительного просмотра. Это выглядит очень странно. Таким образом, мне нужно сделать одну из двух вещей, оба из которых оказывается сложнее, чем я хотел бы надеяться:UIImagePickerController no overlay при предварительном просмотре

  1. Снимите накладку, когда на экране предпросмотра
  2. Не показывать экран предварительного просмотра

Я знаю, что могу выполнить # 2, установив showCameraControls = NO - однако в настоящее время я не создаю свои собственные элементы управления камерой, я все равно хочу использовать элементы управления по умолчанию. Кажется, что кувалдой подходит, чтобы сказать, что мне нужно воссоздать совершенно прекрасный интерфейс с пользовательским интерфейсом, чтобы обойти экран предварительного просмотра.

Напротив, я нахожу это раздражающим, что встроенная камера не использует экран предварительного просмотра, но Apple, по-видимому, заставляет приложения идти на большие расстояния, чтобы избежать использования. Кажется странным.

+0

вы нашли решение? У меня та же проблема: http://stackoverflow.com/q/23795453/1933185. Обходные пути, которые я нашел, но не так хорошо (последнее сообщение): http://iphonedevsdk.com/forum/iphone-sdk-development/21950-remove-camera-overlay-image.html. Другой вариант, как 'UIImagePickerController'inherits от' UINavigationController', могут быть возможности для крючка ... – jerik

+0

Я закончил тем, что использовал кувалду и создавал пользовательский интерфейс камеры - надеюсь, вам повезло больше, чем мне! :) –

+0

кувалда - это мой запасной вариант :) Что-то подсказывает мне, что у UINavigationController есть потенциал - я попробую. – jerik

ответ

1

убедитесь, что вы установить делегат, как imagePicker.delegate=self;

и назвал делегата METHODE

- (void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info; где вы снимаете imagePicker.view от надтаблицы (зависит от того, как вы назвали это)

Я надеюсь, что help

+0

Я использую этот вызов делегата уже, но он не вызывается до тех пор, пока не будет показан предварительный просмотр и не будет нажата кнопка «Использовать». –

0

Вы должны использовать NSNotificationCenter вместе с @ "_ UIImagePickerControllerUserDidCaptureItem" и @ "_ UIImagePicker ControllerUserDidRejectItem».

При входе предварительного просмотра можно удалять накладку :) Пример из рабочего кода можно найти здесь: https://stackoverflow.com/a/23899448/1933185

Смежные вопросы