Ответ 1
Да, создайте UIImagePickerController из кода, настройте его свойства, добавьте на него наложение и с контроллером, управляйте тем, что вы хотите на этом оверлее: настраиваемые элементы управления, накладывающиеся изображения и т.д.
Что-то вроде этого:
self.picker = [[UIImagePickerController alloc] init];
self.picker.sourceType = UIImagePickerControllerSourceTypeCamera;
self.picker.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto;
self.picker.cameraDevice = UIImagePickerControllerCameraDeviceRear;
self.picker.showsCameraControls = NO;
self.picker.navigationBarHidden = YES;
self.picker.toolbarHidden = YES;
self.picker.wantsFullScreenLayout = YES;
// Insert the overlay
self.overlay = [[OverlayViewController alloc] initWithNibName:@"Overlay" bundle:nil];
self.overlay.pickerReference = self.picker;
self.picker.cameraOverlayView = self.overlay.view;
self.picker.delegate = self.overlay;
[self presentModalViewController:self.picker animated:NO];
OverlayViewController
- это контроллер, который вы должны написать, чтобы контролировать все, что вы добавляете на оверлей.
pickerReference
- это свойство, которое вы можете сохранить для отправки заказов на камеру. Например, вы можете вызвать следующее из IBAction, исходящего из UIButton, помещенного на наложение:
[self.pickerReference takePicture];