web-dev-qa-db-fra.com

didacticiels d'intégration iPhone Xcode Camera

Je ai besoin d'aide. Je dois intégrer l'appareil photo à mon application et je souhaite en savoir plus sur les points suivants:

  1. J'ai besoin du bouton de la caméra sur ma vue pour que cliquer dessus ouvre la vue de la caméra.
  2. Je prends une photo
  3. Je dois coder pour avoir accès à Phone Gallery, puis Afficher une photo dans une autre vue. 

Quelqu'un pourrait-il s'il vous plaît me diriger dans la bonne direction?

13
Legolas

Eh bien, UIImagePickerController est l’outil dont vous avez besoin. Il fera la plupart des choses dans cette liste de contrôle.

Pour le bouton, vous pouvez créer un bouton personnalisé avec des graphiques ou si vous envisagez d'utiliser une barre d'outils ou une barre de navigation pour maintenir vos boutons, vous pouvez créer le bouton de barre à l'aide de l'élément UIBarButtonSystemItemCamera system. Cela vous donnera l'image du cadre.

En appuyant dessus, vous allez créer une instance UIImagePickerController et la présenter de manière modale.

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

Comme vous l'avez sûrement remarqué, il possède une propriété delegate qui est définie par id < UIImagePickerControllerDelegate, UINavigationControllerDelegate> delegate;. Vous devrez donc adopter les deux protocoles, mais dans la plupart des cas, vous n'implémenterez que deux méthodes: imagePickerControllerDidCancel: et imagePickerController:didFinishPickingMediaWithInfo:. Il existe une autre méthode dans le protocole UIImagePickerControllerDelegate mais elle est obsolète. Ne l'utilisez pas même si vous le voyez beaucoup mentionné ici. Vous vous attendez à ce que le gestionnaire d'annulation soit écrit comme ceci,

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

Les autres méthodes permettent de faire la plupart des choses.

- (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 prise de vue est effectuée automatiquement par l'instance UIImagePickerController. Toutefois, si vous souhaitez remplacer leurs contrôles, vous pouvez le faire en définissant showsCameraControls sur NO, puis en implémentant votre propre cameraOverlayView. Si vous l'avez déjà fait et avez assigné un bouton pour prendre la photo, vous pouvez réellement déclencher l'action d'image à l'aide de la méthode takePicture. Donc, cela devrait adresser #2.

Vous pouvez également utiliser d'autres propriétés pour ajuster votre sélecteur d'images. Par exemple, vous pouvez limiter l'utilisateur à la prise d'images uniquement à l'aide de la propriété mediaTypes.

52
Deepak Danduprolu

En reformulant la documentation, dismissModalViewControllerAnimated: est obsolète à partir de iOS6. Utilisez dismissViewControllerAnimated:completion: à la place.

0
Robin Macharg