![](/img/trans.png)
[英]Strange behaviour of UIImageView and UILabel using NSTimer and animations
[英]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"];
它非常优雅,易于解决。
注意:动画将在完成(或取消,或失败,或其他)后自动删除,并且您需要知道为每个会话重新生成动画或通过将 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.