2017-12-05 16 views
1

をアニメーション、ここでのコードだ:iOSの - 私は、画面上のいくつかの要素をアニメーション化しようとしている背景の問題

private func setupAnimations() { 

    self.emailAddress.alpha = 0 
    self.fullName.alpha = 0 
    self.password.alpha = 0 
    self.confirmPassword.alpha = 0 
    self.signUp.alpha = 0 
    self.fullName.leftView?.alpha = 0 
    self.emailAddress.leftView?.alpha = 0 
    self.password.leftView?.alpha = 0 
    self.confirmPassword.leftView?.alpha = 0 

    self.emailAddress.center.x += self.view.bounds.width-10 
    self.fullName.center.x -= self.view.bounds.width-10 
    self.password.center.x -= self.view.bounds.width-10 
    self.confirmPassword.center.x += self.view.bounds.width-10 
    self.signUp.center.y += self.view.bounds.height/2 

    UIView.animate(withDuration: 1.7, delay: 0.2, usingSpringWithDamping: 0.7, initialSpringVelocity: 0.5, options: [.allowUserInteraction,.curveEaseInOut], animations: { 

     self.emailAddress.alpha = 1 
     self.emailAddress.center.x -= self.view.bounds.width-10 
     self.view.layoutIfNeeded() 

    }, completion: {(completed) in 

     if completed { 

      UIView.animate(withDuration: 1, animations: { 
       self.fullName.leftView?.alpha = 1 
       self.emailAddress.leftView?.alpha = 1 
       self.password.leftView?.alpha = 1 
       self.confirmPassword.leftView?.alpha = 1 
      }) 

     } 

    }) 

    UIView.animate(withDuration: 1.7, delay: 0, usingSpringWithDamping: 0.7, initialSpringVelocity: 0.5, options: [.allowUserInteraction,.curveEaseInOut], animations: { 

     self.fullName.alpha = 1 
     self.fullName.center.x += self.view.bounds.width-10 
     self.view.layoutIfNeeded() 

    }, completion: {(completed) in 

     if completed { 

      UIView.animate(withDuration: 1, animations: { 
       self.fullName.leftView?.alpha = 1 
       self.emailAddress.leftView?.alpha = 1 
       self.password.leftView?.alpha = 1 
       self.confirmPassword.leftView?.alpha = 1 
      }) 

     } 

    }) 

などなど..あなたのアイデアを得る - Imが0にアルファを設定し、中央にxは画面に表示され、それがviewDidLoad()で呼び出されて画面に "到着"するようにアニメートされます。すべては月のために働いたが、最近、私はこれをチェックし、ここで問題ですしている:

ビデオリンク:https://streamable.com/lhqvu

スーパービューでUIImageである背景には、また、スーパーを作り、アニメーションされている(赤背景)が見られる。

screenshot of hierarchy and constraints

任意の助けいただければ幸いです。前もって感謝します。

+0

すべてのアニメーションをviewDidAppearメソッドで試し、2つの部分でコードを分けて表示しますか?1)すべてのアルファ0と設定しているフレームを設定する場所を設定しました2)(表示されましたか? –

答えて

0

setupAnimationsメソッドをviewWillAppearに追加し、usingSpringWithDampingブロックからself.view.layoutIfNeeded()を削除してください。そしてsafeAreaチェックを外しストーリーボードにし、余白 &に拘束を外し、スーパー、トップの制約を設定しながら、ゼロに設定します。

+0

ありがとう、このソリューションは私のために働いています。 – RadoJakubes

0

アニメーションに関しては、viewDidLoadではなくviewDidAppearの関数を呼び出す必要があります。

関連する問題