Я пытаюсь использовать интерфейс UIImagePickerController от OS 3.1 с помощью камерыOverlayView и takePicture, но я явно не понял, как это работает, и поэтому я не получаю поведение I хотеть.iPhone: сфотографировать снимок
Что я хочу сделать, это открыть камеру и сделать снимок автоматически без необходимости взаимодействия пользователя с сборщиком или редактирования изображения. Так что я подкласс UIImagePickerController (подобный пример в http://github.com/pmark/Helpful-iPhone-Utilities/tree/master/BTL%20Utilities/) и отключить все элементы управления:
- (void)displayModalWithController:(UIViewController*)controller animated:(BOOL)animated {
self.sourceType = UIImagePickerControllerSourceTypeCamera;
self.showsCameraControls = NO;
self.navigationBarHidden = YES;
self.toolbarHidden = YES;
// Setting the overlay view up programmatically.
ipView = [[ImagePickerView alloc] init];
self.cameraOverlayView = ipView;
[controller presentModalViewController:self animated:NO];
}
В OverlayView, я сумел заставить метод takePicture из UIImagePickerController стрелять (я знаю это, потому что Я могу NSLog это, и я слышу звук камеры, делающей снимок). ОверлейПроект отображается просто отлично. Тем не менее, метод делегата didFinishPickingMediaWithInfo: никогда не вызывается, а imagePickerControllerDidCancel также не вызван.
Итак, как мне получить методы делегата для вызова или сохранить изображение, переопределив метод takePicture? (Я понятия не имею, как записывать данные изображения здесь, и Google, похоже, подвел меня). Я не могу избавиться от ощущения, что я не в состоянии понять, как работает внутренность UIImagePickerController, но документы не слишком полезны:
например:
«Вы можете указать вид пользовательского наложения для отображения пользовательский интерфейс для рисования, и вы можете инициировать съемку изображений из вашего кода. Пользовательский вид наложения может отображаться в дополнение к элементам управления по умолчанию, предоставляемым интерфейсом выбора изображений ».
или showCameraControls:
«Если установить это свойство NO и предоставить свои собственные пользовательские элементы управления, вы можете взять несколько снимков, прежде чем увольнять интерфейс выбора изображений.» - Как отключить интерфейс выбора?
Примечание: делегат установлен правильно в IB, так что это не проблема.
Спасибо за любую помощь, которую вы можете предоставить!