2017-11-09 8 views
0

これは私のコードであり、スキップボタンのアニメーションは機能しません。それはすぐに消える。 それだけが消えるio swiftアニメーション:アルファと制約

skipButtonBottomConstraint.constant = -40 

UIView.animate(withDuration: 1.0, animations: { 

       self.titleLabel.alpha = 0 
       self.skipButton.alpha = 0 
       self.pageControl.alpha = 0 


       self.view.setNeedsLayout() 
    }) 

理由を説明できますか?すべての保留中のレイアウトの操作が完了していることを確認するために、アニメーションブロックの前に一度それを呼び出す -

+0

は、あなたがこの機能を中心に設定されている他のすべての操作/コードを表示します。アニメーションに影響を与える何かを設定してもいいですか? – Krunal

+3

'setNeedsLayout'の代わりに' layoutIfNeeded'を呼び出してください。 – Paulw11

+0

@ Paulw11ありがとう!正しい答えです –

答えて

-2

あなたはまた、Appleが推奨していますようごsetNeedsLayout

layoutIfNeededを呼び出していることを確認してください。

self.view.layoutIfNeeded() 
self.skipButtonBottomConstraint.constant = -40 
UIView.animate(withDuration: 1.0, animations: {  
     self.titleLabel.alpha = 0 
     self.skipButton.alpha = 0 
     self.pageControl.alpha = 0 
     self.view.layoutIfNeeded() 
}) 
+0

いいえ...。うまくいきません。突然消えてしまいます。アルファ –

+0

アニメーションが動かず、フェードアウトするからです。 –

+0

@TheMiotzここに示したコードによれば、この答えは正しいので、うまくいくはずです – Krunal

2

私はポールが正しいと思う、とあなたはアニメーションブロック内layoutIfNeeded()を呼ぶべきである、ないsetNeedsLayout()

関連する問題