40 votes

IOS: caméra avec vue personnalisée

J'utilise l'appareil photo dans mon application, mais mon problème est que je ne veux pas utiliser la disposition classique de l'appareil photo, mais que je souhaite utiliser une vue personnalisée sur l'appareil photo. Par exemple, je veux utiliser un cadre photo lorsque j'utilise un appareil photo et je ne veux pas utiliser l'appareil photo gris classique, mais un mon onglet personnalisé; c'est possible?

56voto

Dip Dhingani Points 1290

Vous pouvez essayer en utilisant UIImagePickerController. Mais je sais que ce une solution à votre problème. Vous pouvez le faire facilement en utilisant AVCamCaptureManager et AVCamRecorder classes. Apple a un programme de démonstration de construire sur son site des développeurs ici. Il est nommé AVCam. En termes simples ce qu'il fait, c'est quand vous cliquez sur pour ouvrir l'appareil photo, il appelle les classes et les méthodes qui sont responsables de l'ouverture de la caméra de l'iPhone et l'enregistrement vidéo ou la capture audio. Il appelle les mêmes classes qui sont appelés par UIImagePickerController. Si votre appareil permettra d'ouvrir et de commencer la prise d'entrée.

Maintenant, si vous ouvrez le fichier xib de AVCam projet, vous trouverez un petit UIView objet. Ce point de vue est responsable de l'affichage de l'appareil d'alimentation. Vous pouvez redimensionner ce point de vue que par la taille que vous voulez et l'entrée de la caméra seront affichées dans l'étendue de l'espace. Vous pouvez également mettre une image, l'image de votre choix.

Il a travaillé pour moi quand j'ai voulu redimensionner l'entrée de la caméra nourrir et prendre des photos. J'espère que cela fonctionne pour vous aussi.

41voto

Oliver Points 10593

Créer un UIImagePickerController de code, d'ajuster ses propriétés, ajouter une superposition sur elle, et avec vous, contrôleur, contrôle que vous voulez sur ce segment : les contrôles personnalisés, en superposant les images, etc...

Qui donne quelque chose comme ceci :

self.picker = [[UIImagePickerController alloc] init];
self.picker.sourceType = UIImagePickerControllerSourceTypeCamera;
self.picker.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto;
self.picker.cameraDevice = UIImagePickerControllerCameraDeviceRear;
self.picker.showsCameraControls = NO;
self.picker.navigationBarHidden = YES;
self.picker.toolbarHidden = YES;
self.picker.wantsFullScreenLayout = YES;

// Insert the overlay
self.overlay = [[OverlayViewController alloc] initWithNibName:@"Overlay" bundle:nil];
self.overlay.pickerReference = self.picker;
self.picker.cameraOverlayView = self.overlay.view;
self.picker.delegate = self.overlay;

[self presentModalViewController:self.picker animated:NO];

OverlayViewController est le contrôleur que vous devez écrire à contrôler tout ce que vous ajoutez sur la superposition.

pickerReference est une propriété que vous pouvez garder pour vous envoyer des commandes de la caméra. Par exemple, vous pourriez appeler la suivante à partir d'une IBAction à venir à partir d'un UIButton placé sur le recouvrement :

[self.pickerReference takePicture];

4voto

AliSoftware Points 21493

Lire la UIImagePickerController Classe de Référence, c'est droit dans la documentation...

Il y a des propriétés pour cela, en particulier l' cameraOverlayView et showsCameraControls propriétés.

De sorte que vous pouvez masquer les commandes, fournir une coutume superposition de vue, et d'ajouter des sous-vues à cette vue personnalisée pour ajouter des boutons personnalisés, cadres, etc.

1voto

0xfee1dead Points 91

Je ne me souviens pas exactement comment le faire, mais c'est possible. Regardez la session 421 de la WWDC 2010 "Intégrer l'appareil photo et la photothèque à votre application"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X