Обратный вызов для события открытия затвора камеры - PullRequest
2 голосов
/ 17 февраля 2010

Я работал в UIImagePickerController и столкнулся с проблемой, когда мне нужно получить точный момент, когда затвор камеры открывается в UIImagePickerController, когда тип источника установлен на камеру (UIImagePickerControllerSourceTypeCamera).

Я немного погуглил и понял, что ни у кого не было такого странного требования!

Я просмотрел документы UIImagePickerController и UIImagePickerControllerDelegate, надеясь получить какой-нибудь делегатский метод / обратный вызов, указывающий на событие открытия затвора камеры, но не нашел ни одного.

Есть предложения?

Спасибо за любую помощь,

Радж Паван

Ответы [ 3 ]

2 голосов
/ 22 февраля 2013

Подписаться на:

AVCaptureSessionDidStartRunningNotification

Это когда начинается анимация открытия радужной оболочки. Если вы добавите cameraOverlayView в течение этого времени, он будет правильно закрыт радужкой Он публикуется одновременно с этим личным уведомлением. Это документированный подход, который не рискует отклонить приложение.

1 голос
/ 03 мая 2010

Решение состоит в том, чтобы наблюдать за частным уведомлением, как обсуждалось в этой теме: Обнаружение, когда диафрагма камеры открыта на iPhone .

0 голосов
/ 17 февраля 2010

Мое предложение (не пробовал сам, но не понимаю, почему это не сработало):

  • Создайте подкласс класса UIImagePickerController в своем собственном классе и переопределите viewWillAppear и viewDidAppear: эти методы будут запущены, когда UIImagePickerController собирается появиться или действительно появляется (если вы включите его отображение, используя, например, presentModalController) .


    @interface MyUIImagePickerController : UIImagePickerController {
    }
    @end

@implementation MyUIImagePickerController
-(void)viewWillAppear:(BOOL)animated {
    NSLog(@"the picker is about to appear");
    [super viewWillAppear:animated];
}

-(void)viewDidAppear:(BOOL)animated {
    NSLog(@"the picker did appear");
     [super viewDidAppear:animated];
}
@end

...