我有一个像#34;点数(67)和#34;它显示在标签上。
有时在我的应用中,积分总数可以通过NSNotification改变。
所以,也许它会变成" Points(117)"。我不希望这种情况立即发生,因为用户的眼睛可能会错过这种变化。我希望他们注意到。
我想只为67到117部分制作动画。可能的尺寸,可能会随着变化而增长10%,然后缩小到原始尺寸的10%。或者也许是颜色。最好是尺寸,但我猜测如果不创建其他标签就不可能。
这可行吗?
答案 0 :(得分:1)
你无法为字体大小设置动画,但是你可以缩放UILabel来实现你的目标。
以下两种显示UILabel字体大小变化的方法。
UIView动画
[UIView transitionWithView:yourlabel duration:0.5 options:UIViewAnimationOptionTransitionCrossDissolve animations:^{
yourlabel.font = [UIFont fontWithName:@"HelveticaNeue" size:14.0];
}];
缩放动画
CABasicAnimation*scaleAnimation[CABasicAnimationanimationWithKeyPath:@"transform.scale.xy"];
scaleAnimation.fromValue = @(1);
scaleAnimation.toValue = @00.5;
scaleAnimation.duration = self.animationDuration;
[yourlabel addAnimation:self.animationGroup forKey:@"pulse"];
答案 1 :(得分:0)
您可以执行以下动画以使用户注意到更改:
[label setTransform:CGAffineTransformMakeScale(1.0, 1.0)];
[UIView animateWithDuration:0.3 animations:^
{
[label setTransform:CGAffineTransformMakeScale(1.5, 1.5)];
}
completion:^(BOOL finished)
{
if(finished)
{
[UIView animateWithDuration:0.15 animations:^
{
[label setTransform:CGAffineTransformMakeScale(1.0, 1.0)];
label.text = @"Points (117)";
}];
}
}];
您可以根据您的要求更改持续时间和比例....
希望这会对你有所帮助。