#objective-c #cocoa-touch #ios #uiimagepickercontroller
#objective-c #cocoa-touch #iOS #uiimagepickercontroller
Вопрос:
Чтобы создать свой пользовательский 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];
при съемке затвор не отображается. Есть ли способ показать это программно?
Ответ №1:
Это возможно. Хитрость заключается в том, чтобы сделать следующее:
Включите элементы управления камерой при инициализации средства выбора (это позволит просматривать затвор).
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. Хорошо! Я попробую это.. Но я не думал, что вы могли бы наложить UIView с
showCameraControls
на? Если можно, то как?2. Это должно сработать. Я делаю это на уровне камеры, вы можете использовать UIToolbar, например:
UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0.0, 480.0-56.0, 320.0, 56.0)]; <toolbar init...> [pickerOne addSubview:toolbar];
Ответ №2:
Нет способа управлять эффектом «затвора». Однако вы можете создать свое собственное изображение и добавить в него эффект.
Комментарии:
1. Это то, что я подумал… Как бы я «создал свое собственное изображение и добавил этот эффект» туда? Не могли бы вы, пожалуйста, объяснить немного лучше? Спасибо.
2. Возможно, вы могли бы добавить
UIImage
дополнительный вид при съемке.