2017-02-03 5 views
1

2つのテキストフィールドとラベルのアニメーションスライドを作成しようとしています。しかし何らかの理由で、viewDidAppear()関数は、テキストフィールドをクリックしようとするたびに実行され、アニメーションを継続します。誰にもアイデアはありますか?viewDidAppear()はすべてのクリックで実行されます

これは、関数の私のコードです:

override func viewDidAppear(animated: Bool) 
{ 
    //Some Code here 
    UIView.animateWithDuration(1.5, delay: 0.5, 
           usingSpringWithDamping: 0.3, 
           initialSpringVelocity: 0.5, 
           options: [], animations: { 
           self.Email.center.x += 475 
           self.Password.center.x -= 400 
     }, completion: nil) 

    UIView.animateWithDuration(2.0, delay: 2.0, 
           options: [], 
           animations: { 
           self.LoginButton.alpha = 1.0 
     }, completion: nil) 
    UIView.animateWithDuration(1.5, delay: 0.5, 
           usingSpringWithDamping: 0.3, 
           initialSpringVelocity: 0.5, 
           options: [], animations: { 
           self.LoginL.center.y += 100 
     }, completion: nil) 

} 
+0

super.viewDidAppear(アニメーション)への呼び出しを追加してみてください。 –

+0

スーパーコールを追加すると修正されました。ありがとうございます! – dgelinas21

+0

それが助けてくれてうれしく、答えを受け入れてチケットを閉めてください。 P.P.新しい[UIViewPropertyAnimator API](https://developer.apple.com/reference/uikit/uiviewpropertyanimator)のように、アルファとフレームを使いこなすように設計されているようにしてください。 –

答えて

1

問題がUIViewControllerのライフサイクルにあることが判明したので、super.viewDidAppear(animated)を呼び出す必要がありました。

-1

は、代わりにそれをviewWillAppear実行しようと、あなたのアニメーションが初めての場合にのみ、あなたのスクリーンのロード実行されます。

関連する問題