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?
Réponses
Trop de publicités?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.
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];
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.