2011-06-17 16 views
13

Necesito ayuda. Necesito integrar la cámara en mi aplicación, y quiero aprender sobre lo siguiente:iPhone Xcode Camera Integration Tutorials

  1. Necesito el botón de la cámara en mi vista para que al hacer clic se abre la vista de la cámara.
  2. Tomo una foto
  3. Necesito el código para que tenga acceso a la Galería del teléfono y luego mostrar una imagen en otra vista.

¿Alguien podría indicarme la dirección correcta?

+0

Hola Visita este enlace http://stackoverflow.com/questions/10176020/how-to-take-picture-from-camera-using-iphone-app –

Respuesta

52

Bueno, UIImagePickerController es la herramienta que necesita. Hará la mayoría de las cosas en esa lista de verificación.

Para el botón puede crear un botón personalizado con gráficos o si planea usar una barra de herramientas o una barra de navegación para mantener sus botones, puede crear el botón de barra usando el elemento de sistema UIBarButtonSystemItemCamera. Esto te dará la imagen del marco.

Al tocarlo, creará una instancia UIImagePickerController y la presentará de forma modal.

UIImagePickerController * imagePicker = [[UIImagePickerController alloc] init]; 
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera; 
imagePicker.delegate = self; 
[self presentModalViewController:imagePicker animated:YES]; 
[picker release]; 

Como debes haber dado cuenta de que tiene una propiedad delegate que se define como id < UIImagePickerControllerDelegate, UINavigationControllerDelegate> delegate; por lo que tendrá que adoptar tanto los protocolos, pero en la mayoría de los casos se implementa sólo dos métodos - imagePickerControllerDidCancel: y imagePickerController:didFinishPickingMediaWithInfo:. Existe otro método en el protocolo UIImagePickerControllerDelegate, pero está en desuso. No lo use, incluso si lo ve mencionado mucho por aquí. Uno esperaría que el manejador de cancelación a escribirse así,

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker { 
    [self dismissModalViewControllerAnimated:YES]; 
} 

Los otros métodos es donde se hace la mayor parte de las cosas.

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 
    UIImage * image = [info objectForKey:UIImagePickerControllerEditedImage]; 

    // You have the image. You can use this to present the image in the next view like you require in `#3`. 

    [self dismissModalViewControllerAnimated:YES]; 
} 

La toma se realiza automáticamente por la instancia UIImagePickerController. Sin embargo, si desea anular sus controles, puede hacerlo configurando showsCameraControls en NO y luego implementando su propio cameraOverlayView. Si lo ha hecho y le ha asignado un botón para tomar la foto, puede disparar la acción de la imagen usando el método takePicture. Así que esto debería dirigirse al #2.

Puede usar otras propiedades para ajustar también su selector de imágenes. Por ejemplo, puede limitar al usuario a solo tomar imágenes usando la propiedad mediaTypes.

+0

GRACIAS MUCHO TIPO !! – Legolas

+0

¡Tipo! http://stackoverflow.com/questions/6444107/help-with-modal-view-controller-login – Legolas

+1

+1 para una buena respuesta. Muy bien explicado, muchas gracias. – Peter

0

Parafraseando los documentos, dismissModalViewControllerAnimated: está obsoleto desde iOS6 en adelante. Use dismissViewControllerAnimated:completion: en su lugar.