2012-10-09 18 views
18

UIImagePickerControllerコントローラにカスタムオーバーレイを使用していて、すべて正常に動作しています。私はフロントとリアのカメラを切り替えるボタンを追加しました -UIImagePickerController後ろから前のカメラからアニメーションに切り替える方法は?

- (IBAction)changeCamera:(id)sender { 
if (self.imagePicker.cameraDevice == UIImagePickerControllerCameraDeviceRear) { 
    self.imagePicker.cameraDevice = UIImagePickerControllerCameraDeviceFront; 
} 
else { 
    self.imagePicker.cameraDevice = UIImagePickerControllerCameraDeviceRear; 
} 
} 

問題は、スイッチはアニメーション化されていません。私はUIImagePickerの上に構築されたリンゴのカメラアプリを使用していて、スイッチはアニメーションで起こっています。これはどうすればいいですか?

+0

UISwitchを使用していますか? – iOS

+0

私はUIBarButtonItemを使用しています。スイッチでは、後ろから前にカメラがアニメーション化されたことを意味します。リンゴアプリのように、水平に反転しています。 – MegaManX

+0

['transitionFromView:toView:duration:options:completion:'](http://developer.apple.com/library/ios/#documentation/uikit/reference/uiview_class/uiview/uiview.html#/)をご覧ください。 –

答えて

22

今日はこれを行うにしようとしていた、と私はそれが次のコードで動作させることができました:

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

私はこれがこの質問に出くわす誰にも役立ちます願っています。

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

おかげパブロ:誰かがそれを必要とする場合にはここで

+0

答えをありがとう。それは私が探している右の遷移を提供しますが、カメラビュー間の遷移はまだ少しちらつきます(カメラデバイスは、遷移が行われる前に設定されていません)。古いiPadsではその値が異なる可能性があるため、アニメーションの期間を増やすことを躊躇しています。何かご意見は?私はスクリーンショットを撮ってイメージピッカーに移行することを考えていました。 –

+0

私は同じ問題を抱えています。変換は素晴らしいアイデアですが、アップルは補完コールバックを提供しないのでタイミングは正確ではありません。 – daidai

+1

このソリューションの問題点は、カメラオーバーレイビューをフリップすることです。これは、アップルが独自のカメラアプリで行う方法とは異なります。 – HiveHicks

3

は受け入れ答えのためのスウィフトコードです!

+0

ありがとうございました。 –

関連する問題