2016-03-19 4 views
0

私は何かが起こったときに私のアプリの画面にUILabelとUIButtonを移動しようとしていますが、アニメーションを使ってこれを行うと動作しません。コンポーネントが画面上に移動しません。アニメーションのコードは次のとおりです。スウィフトアニメーションが動作しない

UIView.animateWithDuration(2) {() -> Void in 
        self.label.center = CGPointMake(self.view.center.x, self.label.center.y) 
        self.again.center = CGPointMake(self.view.center.x, self.again.center.y) 
       } 

この問題に関するお手伝いをさせていただきます。

+1

私たちはもう少し文脈が必要です - あなたはどこでこれを呼んでいますか? – tktsubota

+0

私は@TroyTに同意します。もう少しコードが必要です。ストーリーボードにオブジェクトを作成していますか? –

+0

いいえ、プログラムではなく、グラフィカルインターフェースを使ってmain.storyboardで作成しました。 viewDidLayoutSubviewsでは、コンポーネントを画面から外して、特定のイベントが実行されるたびに、これがいつ実行されるかを知っています。コンポーネントは画面にアニメーション表示されるはずです。 –

答えて

1

これを試してください。 layoutIfNeeded()を使用すると、すべての位置が変更されます。

UIView.animateWithDuration(2) {() -> Void in 

       self.label.center = CGPointMake(self.view.center.x, self.label.center.y) 
       self.again.center = CGPointMake(self.view.center.x, self.again.center.y) 
       self.view.layoutIfNeeded() 
      } 
+0

を投稿することはできません申し訳ありませんが、これはうまくいかず、このアニメーション中に実際に何かをプリントして印刷しましたが、コンポーネントはiPhone画面に移動しませんでした。 –

+0

self.view .layoutIfNeeded()を試してください。self.label.layoutIfNeeded()およびself.again.layoutIfNeeded() –

0

試してみてください!

UIView.animateWithDuration(1.0, 
delay: 2.0, 
options: .CurveEaseInOut , 
animations: { 
self.label.center = CGPointMake(self.view.center.x, self.label.center.y) 
self.again.center = CGPointMake(self.view.center.x, self.again.center.y) }, 
completion: { finished in 
    println("Bug moved left!") 
    self.faceBugRight() 
}) 
}