iPhone SDK - Используйте пользовательскую камеру - PullRequest
3 голосов
/ 03 марта 2011

Я разрабатываю приложение, которое должно делать две фотографии подряд.В настоящее время я использую камеру iPhone, но:

  • Я бы не хотел иметь кнопку отмены в левом нижнем углу
  • Я не хотел бы иметь предварительный просмотр моей фотографии (с синей кнопкой «использовать»).

Что мне делать?Должен ли я сделать свою собственную камеру?Я не смог найти простой учебник для пользовательской камеры только с кнопкой «сделать снимок» ...

Ответы [ 2 ]

7 голосов
/ 12 ноября 2011

Создайте 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];
2 голосов
/ 03 марта 2011

Самый простой способ сделать это - использовать UIImagePickerController с showsCameraControls, установленным в NO, и настраиваемым представлением, установленным в cameraOverlayView; этот вид может содержать любые нужные вам кнопки. При касании кнопка должна вызывать takePicture в средстве выбора изображений, а когда вы закончите, просто используйте dismissModalViewControllerAnimated:, чтобы закрыть средство выбора.

...