1

私のプロジェクトでは、ある種の特定のアニメーションを作成する必要があります。アイデアは、2つのUILabelを移動する必要があるということです。両方とも下に移動する必要がありますが、最初は一方が他方の上にあります。最初は、下部のUILabelが配置されている長方形の領域もあります。アニメーションを開始すると、両方のUILabelが何らかの回転ホイール上にあるように見え、下がると下部のUILabelが消えます(その長方形の窓からはもう見えません)そして一番上の窓が代わりになります。

UILabelのフェードインとフェードアウトのタイミングでその効果を達成しようとしましたが、それは本当に貧弱に見えます。それを解決する唯一の方法は、長方形の周りの領域をアニメーション化することだと思いますが、その1つの領域でのみアニメーションを表示します。それを行う方法についてアドバイスをいただけますか?

ここに写真があります:

ここに写真があります:

これを実現するために私が試みたコードは次のとおりです。

[UIView animateWithDuration:0.3 animations:^{
encouragementLabel.alpha = 1.0;
encouragementLabel.center = CGPointMake(encouragementLabel.center.x,encouragementLabel.center.y+40);}];

[UIView animateWithDuration:0.3 animations:^{
answer.alpha = 0;
answer.center = CGPointMake(answer.center.x, answer.center.y+40);}];
4

2 に答える 2

1

長方形ビューのサブビューとしてラベルを追加してみてください。長方形ビューのclipsToBoundsプロパティまたはlayer.masksToBoundsがYESに設定されていることを確認してください。これにより、長方形の境界外のサブビューが非表示になります。これで、ラベルをアニメーション化すると、長方形を離れると自動的に非表示になり、長方形に移動すると表示されます。

于 2013-02-08T01:24:02.930 に答える
0

これを試してみてください......

[UIView animateWithDuration:0.3 animations:^{
       encouragementLabel.alpha = 1.0;
       encouragementLabel.center = 
           CGPointMake(encouragementLabel.center.x,encouragementLabel.center.y+40);
} completion:^(BOOL finished) {
       [UIView animateWithDuration:0.3 animations:^{
       answer.alpha = 0;
       answer.center = CGPointMake(answer.center.x, answer.center.y+40);}];
}];
于 2013-03-04T12:31:04.127 に答える