Показать затвор камеры программно? - PullRequest
3 голосов
/ 04 июня 2011

Чтобы сделать свой кастом UIImagePickerSourceTypeCamera, мне нужно было сделать это:

pickerOne = [[UIImagePickerController alloc] init];
pickerOne.delegate = self;
pickerOne.sourceType = UIImagePickerControllerSourceTypeCamera;
pickerOne.showsCameraControls = NO;
pickerOne.navigationBarHidden = YES;
pickerOne.toolbarHidden = YES;
pickerOne.wantsFullScreenLayout = YES;

Но теперь, когда я делаю снимок, подобный этому:

[cameraButton addTarget:pickerOne 
                 action:@selector(takePicture)
       forControlEvents:UIControlEventTouchUpInside];

он не показывает затвор при съемке. Есть ли способ показать это программно?

Ответы [ 2 ]

2 голосов
/ 04 июня 2011

Это возможно. Хитрость заключается в том, чтобы сделать следующее:

Включите элементы управления камерой при инициализации сборщика (это активирует вид затвора).

pickerOne.showsCameraControls = YES;

Наложение элементов управления камерой на ваш собственный вид, который имеет cameraButton

В вашем takePicture: методе выполните следующее:

pickerOne.showsCameraControls = NO;
[[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.0]];
[pickerOne takePicture];

В методе imagePickerController:didFinishPickingMediaWithInfo: выполните следующее:

pickerOne.showsCameraControls = YES;  // perform on main thread
1 голос
/ 04 июня 2011

Нет способа контролировать эффект "затвора".Однако вы можете создать собственное изображение и добавить эффект.

...