2012-06-24 20 views
8

Estoy trabajando en una aplicación para iPhone que utiliza la vista superpuesta de la cámara del UIImagePickerController. Sin embargo, el problema al que me estoy enfrentando es que mi superposición todavía está en la pantalla cuando se toma la fotografía y aparece la pantalla de vista previa. Esto se ve muy raro. Por lo tanto, tengo que hacer una de dos cosas, ambas de las cuales están resultando más difícil de lo que habría esperado:UIImagePickerController sin superposición en la vista previa

  1. Retire la superposición cuando la pantalla de vista previa está activo
  2. No mostrar la pantalla de previsualización

Sé que puedo lograr el # 2 estableciendo showsCameraControls = NO - sin embargo, actualmente no estoy creando mis propios controles de cámara, aún quiero usar los controles predeterminados. Parece un enfoque sensacional decir que tengo que volver a crear una interfaz de usuario perfecta con una interfaz personalizada solo para desplazarme por la pantalla de vista previa.

Por un lado, me resulta molesto que la cámara incorporada no utilice una pantalla de vista previa, pero Apple aparentemente obliga a las aplicaciones a hacer todo lo posible para evitar su uso. Parece extraño.

+0

le parecieron una solución? Tengo el mismo problema: http://stackoverflow.com/q/23795453/1933185. Soluciones alternativas que encontré pero no tan agradables (última publicación): http://iphonedevsdk.com/forum/iphone-sdk-development/21950-remove-camera-overlay-image.html. Otra opción como 'UIImagePickerController' es de' UINavigationController 'podría haber posibilidades para un gancho ... – jerik

+0

Terminé usando el mazo y haciendo una interfaz de cámara personalizada - ¡espero que tengas mejor suerte que yo! :) –

+0

el mazo es mi refugio :) Algo me dice que el UINavigationController tiene potencial. Lo intentaré. – jerik

Respuesta

1

asegúrese de que ha configurado el delegado como imagePicker.delegate=self;

y llamó la méthode delegado

- (void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info; donde se quita imagePicker.view de supervista (depende de la forma en que llamó)

espero que ayuda

+0

Ya estoy usando esa llamada de delegado, pero no se llama hasta que se muestra la vista previa y se hace clic en el botón "Usar". –

0

Tiene que usar NSNotificationCenter junto con @ "_ UIImagePickerControllerUserDidCaptureItem" y @ "_ UIImagePicker ControllerUserDidRejectItem ".

Al entrar en la vista previa vista se puede eliminar la superposición :) Un ejemplo de código de trabajo se puede encontrar aquí: https://stackoverflow.com/a/23899448/1933185

Cuestiones relacionadas