Interface de photo customisée
Bonjour à tous,
Je me renseigne actuellement pour faire une interface custom pour prendre une photo avec l'iPhone. Simplement faire une vue avec un emplacement carré pour la caméra et un bouton pour prendre la photo. Après pas mal de recherches sur le web, je me demandais quel était le meilleur moyen de procéder. Jai vu plusieurs choses :
Tout d'abord, utiliser un AVCaptureVideoPreviewLayer. ça permet d'afficher la caméra et de récupérer une image avec la méthode "captureOutput(captureOutput: AVCaptureOutput!, didOutputSampleBuffer sampleBuffer: CMSampleBuffer!, fromConnection connection: AVCaptureConnection!)". J'avais déjà un peu fait joujou avec ça, mais le code est vite lourd et c'est très vite un bazar pour récupérer une image correctement.
Ensuite, j'ai aussi vu qu'il y avait la possibilité de partir sur un UIPickerViewController en masquant les contrôles par défaut. Je n'ai jamais essayé mais ça me semble un peu pénible pour agencer mon interface custom quoi...
Du coup je m'adresse à vous pour savoir quelle serait la meilleure solution, la plus efficace pour réaliser une vue pour prendre une photo avec l'iPhone.
Avez-vous des idées ? Merci d'avance
Réponses
Super merci AliGator c'est exactement ce que je cherchais. Du coup je suis tombé sur un exemple bien foutu de la doc qui m'a bien aidé.
Bonjour à tous,
Je fais remonter ce sujet suite à une erreur que j'ai rencontrée et dont je n'arrive pas à me débarrasser. Grâce l'exemple que j'ai fourni dans mon post précédent de la doc Apple, j'ai fait mon interface custom. Mais j'ai un petit soucis : lorsque j'appel la méthode "takePicture()", la méthode du delegate "imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject])" n'est pas appelée.
Il se trouve que j'ai une erreur dans le console : "Snapshotting a view that has not been rendered results in an empty snapshot. Ensure your view has been rendered at least once before snapshotting or snapshot after screen updates.". J'ai cherché pas mal sur le web j'ai trouvé une réponse sur SO mais qui ne resoud pas mon problème. Voici le code que j'utilise (qui est le même que dans l'exemple) :
Avez-vous une idée du problème ? Merci d'avance.