10

2 つの異なる で表示される 4 つの値を含む配列がありますUILabel。値をペアでグループ化します。特定の秒で、ラベルは再帰的にペアの別のアイテムで値を変更します。

可能であれば、アニメーションにフェードアウトのようなものを付けたり、左右にスライドさせたりしたいと考えています。

すでにいくつかのコンテンツを見てきましたが、私には何も意味がありませんでした。たとえば、これは実際のアニメーションです(受け入れられた回答による):

[UIView animateWithDuration:1.0 delay:0.f options:(UIViewAnimationOptionAutoreverse| UIViewAnimationOptionRepeat)
   animations:^{
   playerScore.alpha=1.f;
   } completion:^(BOOL finished){
   playerScore.alpha=0.f;
   }];

このコードを別のメソッドまたは のどこに配置すればよいかわかりませんviewDidLoad。誰でも手がかりと情報を提供できますか?それは素晴らしいことだ。

4

2 に答える 2

15

現在のテキストを変更するときに遷移アニメーションを追加UILabelできるため、なぜそんなに多くが必要なのかはわかりません。UILabel

UILabel *textLabel = // ... whatever

[textLabel setText:@"Initial text what I just write accidentally"];

CATransition *transitionAnimation = [CATransition animation];
[transitionAnimation setType:kCATransitionFade];
[transitionAnimation setDuration:0.3f];
[transitionAnimation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
[transitionAnimation setFillMode:kCAFillModeBoth];
[textLabel.layer addAnimation:transitionAnimation forKey:@"fadeAnimation"];

[textLabel setText:@"New text will show after a nice fade effect"];

それは非常にエレガントで簡単なソリューションです。


更新 (2016 年 1 月 6 日)

注: アニメーションは、完了 (またはキャンセル、失敗など) 後に自動的に削除されます。 removedOnCompletion プロパティを FALSE または NOに設定して、セッションごとにアニメーションを再生成するか、現在のアニメーションを明示的に維持することに注意する必要があります。

于 2012-08-31T13:05:49.990 に答える