2016-03-20 9 views
1

私は、UILabelが画面の幅を塗りつぶし、赤色である設定をしたいと思います。ボタンをタップすると、赤いラベルが画面の右側に移動し、同時に色の緑色のUILabelが画面の左側から来るようにします。カラーアニメーションのUILabelの即時

私がこれを行うと考えることができる唯一の方法は、2つの異なるUILabelsを持っていて、それらをアニメーション化して画面の外に出て行くことです。

これはUILabelを1つだけ使用して行うことはできますが、画面に固定して、そのUILabel内で色の変化をアニメーションするだけで、赤が画面の右側に移動し、緑が画面の左側から移動しているように見えますか?

答えて

1

私が知る限り、2つの別々のラベルを使用する必要があります。

赤いラベルと同じ拘束で同じ場所に緑色のラベルを置き、最初にオフスクリーンに設定することができます(このコードをviewDidLoad):あなたは赤いラベルが画面と画面に上の左に画面外から移動するためのグリーンラベルのオフに左に画面上から移動するように

playAgainButton.center = CGPointMake(playAgainButton.center.x - 500, playAgainButton.center.y) 

それは私に聞こえます。 ..アニメーションはこちらです:

UIView.animateWithDuration(0.5, animations: {() -> Void in 

     self.redLabel.center = CGPointMake(self.redLabel.center.x + 500, self.redLabel.center.y) 

     self.greenLabel.center = CGPointMake(self.redLabel.center.x + 500, self.greenLabel.center.y) 

    }) 

アニマットイオンは持続時間を変えます(私はそれを0.5秒に設定しました)

これは役に立ちます!

+0

こんにちはダンのヘルプは素晴らしいことです。私はラベルの背景の色を生成するコードを持っていますが、アニメーション化する方法はわかりません。私はアニメーションを赤色から緑色に変えて画面の右側から10回動かす必要があります。ありがとう。 –

+0

私は数時間であなたにそれを送ることができます –

+0

@PeterGaffney私は私の答えを編集しました!あなたが何か他のものを必要としたら教えてください! –

1

可能ですが、緑のラベルは、同じUILabelを使用しようとしているため、赤がビューから移動した後にのみ表示されます。 UIView animateWithDurationを使用してこれを行うことができます。フレームで拘束して遊ぶ必要があります。最初に、ラベルを左から右に動かして画面を移動し、完了ブロックでフレームを極端に左に戻し、左から右に画面に移動する必要があります。 だけ表示され、ビューを隠しアニメーションの下に確認してください:アニメーションの

https://github.com/quantumarun/BottomUp-Animation

+0

ありがとうthatsは、あなたの答えとダンスの答えを組み合わせて、仕事です:) –