UIImagePickerController cameraViewTransform ne marche plus sous IOS 10

OldNickOldNick Membre
septembre 2016 modifié dans API UIKit #1

Hello CocoaCafé dreamteam !


Sous IOs 9 , j'utilisais "cameraViewTransform" pour déplacer la pré-visualisation lors d'une prise d'image : 



picker.cameraViewTransform = CGAffineTransformMakeTranslation(0.0,yOffSet);

Mais avec IOS 10, ça ne marche plus ... grrrrr !


Une solution (workaround) m'a été donnée sur Apple Developer Forum : il faut "attendre" que l'appareil soit prêt ... pour ça, il faut recevoir la notification AVCaptureSessionDidStartRunningNotification via NSNotificationCenter avant de faire un "translate" :



- (void)cameraIsReadyNotification:(NSNotification *)notification
{
    dispatch_async(dispatch_get_main_queue(), ^{
        
        picker.cameraViewTransform = CGAffineTransformMakeTranslation(0.0,yOffSet);
        
    });
}

Bon...OK .. ça marche.. la pré-visualisation est bien translatée ....MAIS ... lorsque la capture est effective (i.e. : la photo est prise) , celle-ci apparait à  l'écran succinctement (un pouillème de seconde)  et malheureusement non "translatée" ...avant que le controller suivant ne prenne la main et affiche tout ça correctement dans une UIImageView ....


Ma question est donc : savez-vous comment "translater" cette capture ...ou - le cas échéant - faire en sorte qu'elle n'apparaisse plus succinctement ....


Par avance un grand merci pour votre aide.


OldNick


Mots clés:

Réponses

  • Bon, il semble que mon problème déclenche peu de passion ... ???


     


    Après lecture de plusieurs post sur le web ... il semblerait que l'utilisation du framework AVFoundation pour ma capture d'image ( et notamment mes contraintes de preview) réglerait mon problème ... vous confirmez ?


     


    De plus il semblerait que UIImagePickerController ait très mal vécu le passage sous IOs 10 ... notamment impossible d'empêcher l'usage du flash (picker.cameraFlashMode = NO ne marche plus ...) ... bref IOs10/XCode 8 : c'est loin d'être parfait ....


  • Bonjour,


     


    J'ai exactement le même problème que toi. Impossible de modifier la taille de la camera avec cameraViewTransform. En revanche, en la modifiant dans la fonction ViewDidAppear, cela a l'air de fonctionner mais la transition du rescale est malheureusement visible..


     


    Du coup, as-tu essayé avec AVFoundation ?


  • --> presci_kh


    Je n'ai pas encore essayé avec AVFoundation mais compte le faire d'ici la fin de semaine. Je te tiens au courant.


    Bonne journée !


  • Re-salut !


     


    Bonne nouvelle ! AVFoundation a résolu tous mes problèmes liés à  UIImagePickerController, malgré son implémentation, qui est assez complexe. Je n'ai cependant pas testé le flash. Voilà , plus d'hésitations tu peux utiliser ce framework pour tes captures d'images !  :D


     


    Bonne continuation !


  • --> presci_kh


    Merci pour l'info ! J'ai prévu de m'y mettre demain ...


    A+ - OldNick


  • Pour info : IOs 10.2 (Build 14C5062e) refait fonctionner "cameraViewTransform" comme au bon vieux temps de IOs 9 .... Apple en aura mis du temps à  réparer tout ça !


Connectez-vous ou Inscrivez-vous pour répondre.