2016-03-21 6 views
0

私のアプリでは、カメラと、写真撮影時に提示した別のビューコントローラがあります。写真を撮るときにカメラを速く動かすと、アニメーションが機能しなくなります(カメラに先行するオリジナルのUITabBarに戻る)。これがCPU使用量に関連しているかどうかはわかりませんが、ここにパターンがないようです。場合によっては、写真を撮るだけでこのように動作することがあります。私のアニメーションは、主に次のとおりです。UIViewアニメーションが時々再生されない(すぐに終了状態になる)

UIView.animateWithDuration(0.8, delay: 0, options: UIViewAnimationOptions.CurveEaseOut, animations: {() -> Void in      

//buttons.alpha = 1 or 0 
//buttonA.center.x += 100 

}, completion: nil) 

in ViewDidLoadアニメーション内のアルファ値はわずかです。他のアニメーションブロックのほとんどは、ボタンがクリックされたときです。しかし、最も興味深いのは、私がView Controllerを却下してカメラに戻ってくると、パターンがまったくないかのように、時にはその動作が持続し、時にはそうでないことがあるということです。動作が持続すると、カメラビューコントローラ自体(およびInstagramのように、アプリケーションのメインビューであるTabBarの他の部分)からのセグエッグにも影響します。したがって、それはアプリ全体に影響を与えます。あなたはこの奇妙な行動の原因と思われるものは何ですか? Objective-Cコードも歓迎です。

答えて

1

ビューコントローラのライフサイクルのViewDidLoad:部分でアニメーションコードを呼び出さないでください。この時点でビューの読み込みは終了しましたが、画面にまだ表示されていない可能性があります。 viewWillAppear:には、その時点でアニメーションを挿入することができます。ビューが表示されると、アニメーションが実行されます。

+0

私はそれがうまくいかなかったと示唆したものを試しました:/ – rgoncalv

0

viewDidApearを試しましたか?ビューが実際にviewDidLoadまたはviewWillAppearのビュー階層に追加されたかどうかはわかりません。唯一の欠点は、viewControllerのライフサイクルで一度だけ呼び出されると想定できないことです。

+0

はい、私はそれを試しても解決しませんでした。これはメモリやCPUの使用に問題があるようですが、このエラーはアプリをテストするときに頻繁に発生するためです。たとえば、画面をタップしてフォーカスを合わせてカメラをすばやく移動し、ボタンをタップするとすぐに写真を撮ると、奇妙な動作が発生します。それは、アニメーションが何らかの形でそれに応じて再生されないように、あまりにも多くのプロセスを送信することに関連しているようです。 – rgoncalv

関連する問題