2017-05-18 4 views
1

私のアニメーションのコードが実行されます(私はアニメーションの行のいずれかでブレークポイントで実行を停止できます)。それは何もしていない期間のために設定した秒を要します、それはちょうど次のセグを実行します。テキストフィールドは1秒でフェードアウトするはずです。Swift 3アニメーション:コードは実行されますが、視覚効果はありません

 //animate text fields (fade till dissappear) 
     let animationTextFields = {() -> Void in 
      self.firstField.alpha = 0.0 
      self.secondField.alpha = 0.0 
      self.thirdField.alpha = 0.0 
      self.fourthField.alpha = 0.0 

     } 


     UIView.animate(withDuration: 1.0, animations: animationTextFields) 


     //animate next button (flies right) 

     //animate back button (flies left) 

     //animate "please" label (flies up) 





     self.performSegue (withIdentifier: "SegueToMainNavigation", sender: self) 

ご覧のとおり、私はさらにアニメーションが必要ですが、一度に1つのステップが必要です。

なぜ私のアニメーションが起こっていないのでしょうか?

+0

ゼロ以外のテキストフィールドのアルファ値の初期値 – raki

+0

@rakiフィールドは表示されているので、1にする必要がありますか? – DavidVV

+0

あなたはsegueのどこかにいて、現在のVCからアニメーションを見たいと思っています。私はそれを仲間にしません。 –

答えて

1

アニメーションが完了した後にセグエを入れて..あなたは彼らが同時に発生する場合

UIView.animate(withDuration: 1.0, delay: 0.0, options: [], animations: animationTextFields, completion: { (finished: Bool) in 
      self.performSegue (withIdentifier: "SegueToMainNavigation", sender: self) 
    }) 
+0

私はこの答えを受け入れますが、これは最も簡単なものです。申し訳ありませんが、私は別の間違いを犯しました。それがうまくいかなかった理由です。あなたのソリューションは大丈夫です! ありがとう! – DavidVV

+0

DavidvVさんがupvoteに感謝します! –

0

の中にanimationTextFieldsクロージャを書き込んでみてください。

+0

これはうまくいかないようです。 viewControllerにはその関数はありません。 UIViewはしますが、それはテキストフィールドから呼び出すと助けになりません – DavidVV

0

トランジションと一緒にアニメーションを調整することができ、このコード

UIView.animate(withDuration: 0.3) 
{ 

self.performSegue (withIdentifier: "SegueToMainNavigation", sender: self)   
} 
+0

これはどちらも動作しませんが、自分のクロージャを使用していない – DavidVV

1

をお試しくださいtransitionCoordinator

performSegue(withIdentifier: "SegueIdentifier", sender: self) 

transitionCoordinator?.animate(alongsideTransition: { context in 
    UIView.animate(withDuration: 1) { 
     self.label.alpha = 0   // fade out 
    } 
}, completion: { context in 
    self.label.alpha = 1    // if you want, when done, make it visible again so when you return back here you can see it 
}) 
関連する問題