with uiimagepickercontrollerdelegate open example ios objective-c camera uiimagepickercontroller photos

ios - open - uiimagepickercontrollerdelegate swift 4



¿Cómo uso[camera takePhoto] y edito usando UIImagePicker-UIImagePickerController.allowsEditing=YES (2)

Me voy a sentir tonto pero he buscado en todas partes y no he encontrado una respuesta. Pude ver la vista "editar" usando los controles predeterminados de la cámara. Sin embargo, arrojé una superposición y tengo un UIButton conectado a IBAction tomar foto que se parece a [UIImagePickerController takePicture].

Sin embargo, omite por completo la parte de edición aunque configuré permite la edición a SÍ. ¿Hay otro comando para llamarlo? En este momento, va directamente a didFinishPickingMediaWithInfo.

camera.sourceType = UIImagePickerControllerSourceTypeCamera; camera.cameraDevice = UIImagePickerControllerCameraDeviceRear; camera.showsCameraControls = NO; camera.navigationBarHidden = YES; camera.toolbarHidden = YES; camera.wantsFullScreenLayout = NO; camera.allowsEditing = YES; camera.cameraOverlayView = overlay; [self presentViewController:camera animated:YES completion:nil];

luego en IBAcción

[camera takePicture];


Para futura referencia:

El problema de no mostrar la pantalla Editar está asociado a la cámara.showCameraControls = NO; la presencia o ausencia de superposición no tiene nada que ver con eso (como dice la respuesta aceptada actual)

Posible solución: en su IBAction [camera takePicture] configúrelos nuevamente en YES. Se mostrarán solo durante una fracción de segundo y eso permitirá que aparezca la pantalla de edición. Entonces tendrá un problema al presionar "Volver a tomar", en ese caso debe capturar esa acción a través de un delegado y volver a ocultarla allí.


Posible duplicado: UIImagePickerController no muestra la pantalla de edición

Según takePicture: método en la documentación de Apple:

Utilice este método junto con una vista de superposición personalizada para iniciar la captura programática de una imagen fija. Esto permite tomar más de una imagen sin salir de la interfaz, pero requiere que oculte los controles predeterminados del selector de imágenes.

Llamar a este método mientras se captura una imagen no tiene ningún efecto. Debe esperar hasta que el objeto delegado asociado reciba un mensaje imagePickerController: didFinishPickingMediaWithInfo: antes de poder capturar otra imagen.

Parece que este enfoque (superposición personalizada) está configurado para que usted pueda administrarlo. Incluso si "allowsEditing = YES" la imagen tomada se enviará directamente a imagePickerController: didFinishPickingMediaWithInfo :.

En base a eso, si queremos editar la imagen tomada utilizando nuestra interfaz de usuario personalizada, debemos crear una pantalla de edición personalizada para tal fin.