繁体   English   中英

使用UILabel的动画

[英]Using Animations with UILabel

我有一个包含4个值的数组,它将与2个不同的UILabel 我将成对分组。 在特定的秒中,标签递归地改变另一项对的值。

如果可能的话,我想给出一个像淡出或左右滑动效果的动画。

我已经看了一些内容,但没有任何意义。 例如,这是一个工作动画(根据接受的答案):

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

我不确定在单独的方法或viewDidLoad放置此代码的位置。 任何人都可以提供线索和信息吗? 这会很棒。

我不清楚为什么你需要这么多的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

Swift版@holex答案:

textLabel.text = "originalValue"

let textAnimation = CATransition()
textAnimation.type = kCATransitionFade
textAnimation.duration = 0.4

textLabel.layer.addAnimation(textAnimation, forKey: nil)
textLabel.text = "newValue"

如果您想要动画完成时的回调,请使用以下命令:

CATransaction.begin()
CATransaction.setCompletionBlock({
     print("Text Animation Complete!")
})

let textAnimation = CATransition()
textAnimation.type = kCATransitionFade
textAnimation.duration = 0.4

textLabel.layer.addAnimation(textAnimation, forKey: nil)
textLabel.text = "newValue"

CATransaction.commit()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM