Я никогда не использовал раскадровку для создания наложения камеры, но я создал xib, который отлично работает. Вы можете создать оверлей viewController обычным способом (xib), в комплекте с распознавателями жестов, затем вы можете обращаться с ними непосредственно в этом VC или использовать делегат (скорее всего, VC, который представил камеру).
Некоторого код -
-(void)setupCamera
{
self.picker = [[UIImagePickerController alloc] init];
_picker.sourceType = UIImagePickerControllerSourceTypeCamera;
_picker.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto;
self.overlay = [[OverlayViewController alloc] init];
_overlay.delegate = self;
_picker.cameraOverlayView = _overlay.view;
_picker.delegate = self;
[self presentViewController:self.picker animated:YES completion:nil];
}
покрышка -
-(id)init
{
self = [super initWithNibName:@"OverlayViewController" bundle:nil];
if (self)
{
// set up stuff
}
return self;
}
... & некоторого код, который обрабатывает салфетки -
-(IBAction)swipe:(UISwipeGestureRecognizer *)sender
{
// swipe stuff
[self.delegate doSwipeStuff]; // if you want the delegate to handle it
}
Надеется, что это помогает.
благодарит за помощь! Однако мне сложно установить делегата OverlayViewController. До сих пор я был OverlayViewController с файлом .xib, содержащим распознаватель жестов и кнопкой take_photo. Однако, когда я setupCamera на моем CameraViewController, я не могу назначить делегата OverlayViewController текущим CameraViewController, который будет отвечать на кнопку take_photo/gesture_swipe. Я получаю сообщение об ошибке: Property delegate не найден на OverlayViewController ... – Santiago
Похоже, вам нужно кое-что прочитать об использовании делегатов - это очень важно для многих вещей (говоря, что многие новые фреймворки используют блоки вместо этого делегаты по-прежнему играют очень важную роль) - посмотрите учебник Рэя Вендерлиха - http://www.raywenderlich.com/forums/viewtopic.php?f=10&t=3265 – SomaMan