我可以设置NSAttributedString的大小||颜色的动画吗?

时间:2015-07-20 03:24:59

标签: ios cocoa-touch animation nsattributedstring

我有一个像#34;点数(67)和#34;它显示在标签上。

有时在我的应用中,积分总数可以通过NSNotification改变。

所以,也许它会变成" Points(117)"。我不希望这种情况立即发生,因为用户的眼睛可能会错过这种变化。我希望他们注意到。

我想只为67到117部分制作动画。可能的尺寸,可能会随着变化而增长10%,然后缩小到原始尺寸的10%。或者也许是颜色。最好是尺寸,但我猜测如果不创建其他标签就不可能。

这可行吗?

2 个答案:

答案 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)";
          }];
     }

 }];

您可以根据您的要求更改持续时间和比例....

希望这会对你有所帮助。