2012-10-09 7 views
18

Ich habe benutzerdefinierte Overlay für UIImagePickerController Controller verwendet, und alles funktioniert gut. Ich habe Knopf hinzugefügt, um zwischen vorderer und hinterer Kamera über zu wechseln -UIImagePickerController Wie funktioniert der animierte Wechsel von der hinteren zur vorderen Kamera?

Problem ist, Schalter ist nicht lebhaft. Ich benutze eine Apple Camera App, die auf UIImagePicker aufgebaut ist, und der Switch wird animiert. Wie mache ich das?

+0

Verwenden Sie UISwitch? – iOS

+0

Ich verwende UIBarButtonItem. Mit switch meine ich den Wechsel von hinten nach vorne Kamera animiert, wie in Apple App wo es horizontal flippt. – MegaManX

+0

Werfen Sie einen Blick auf ['transitionFromView: toView: Dauer: Optionen: Vervollständigung:'] (http://developer.apple.com/library/ios/#documentation/uikit/reference/uiview_class/uiview/uiview.html#//apple_ref/occ/clm/UIView/transitionFromView: toView: Dauer: Optionen: Vervollständigung :) –

Antwort

22

Ich habe versucht, dies heute zu tun, und ich konnte es mit dem folgenden Code zum Laufen bringen:

[UIView transitionWithView:imagePickerController.view duration:1.0 options:UIViewAnimationOptionAllowAnimatedContent | UIViewAnimationOptionTransitionFlipFromLeft animations:^{ 
      imagePickerController.cameraDevice = UIImagePickerControllerCameraDeviceRear; 
     } completion:NULL]; 

Ich hoffe, das jeden, der über diese Frage kommt hilft.

+0

Danke für die Antwort. Es bietet den richtigen Übergang, nach dem ich suche, aber der Übergang zwischen den Kameraansichten flackert immer noch etwas (das cameraDevice wird nicht eingestellt, bevor der Übergang abgeschlossen ist). Ich zögere, nur die Animationsdauer zu erhöhen, da dieser Wert auf älteren iPads anders sein könnte. Irgendwelche Gedanken? Ich dachte daran, einen Screenshot zu machen und von diesem zum Bilderwähler überzugehen. –

+0

Yeh ich habe das gleiche Problem - die Transformation ist eine nette Idee - aber Apple gibt Ihnen keine Abschlussrückruf, so Timing ist es nicht korrekt. – daidai

+1

Das Problem mit dieser Lösung ist, dass es auch die Kamera-Overlay-Ansicht umdreht, was Apple nicht in seiner eigenen Kamera-App tut. – HiveHicks

3

Hier ist der Swift-Code für die akzeptierte Antwort, falls jemand es braucht:

UIView.transitionWithView(imagePickerController.view!, duration: 1.0, options: [.AllowAnimatedContent, .TransitionFlipFromLeft], animations: {() -> Void in 
      imagePickerController.cameraDevice = .Rear 
      }, completion: nil) 

Dank Pablo!

+0

Danke Mann du hast meinen Tag gerettet! –

Verwandte Themen