Iphone 如何增加UILabel?

Iphone 如何增加UILabel?,iphone,uilabel,nstimer,Iphone,Uilabel,Nstimer,我有一个值为0的UILabel和一个值为300的int。如何使用NSTimer使UILabel在2秒内从0变为300?我希望它看起来像是递增的 提前谢谢 实际上NSTimer精度约为50-100毫秒,因此它不能像您希望的那样平滑。但您可以将计时器设置为0.05,并测量从一开始实际经过的时间。使用后 value = timePassedInSeconds*300/2; NSString* label = [NSString stringWithFormat:@"%d", value]; 如果

我有一个值为0的UILabel和一个值为300的int。如何使用NSTimer使UILabel在2秒内从0变为300?我希望它看起来像是递增的


提前谢谢

实际上
NSTimer
精度约为50-100毫秒,因此它不能像您希望的那样平滑。但您可以将计时器设置为0.05,并测量从一开始实际经过的时间。使用后

value = timePassedInSeconds*300/2; 
NSString* label = [NSString stringWithFormat:@"%d", value]; 

如果这不够顺畅,请尝试使用显示链接,而不是
NSTimer

您想做什么?你是不是想展示点/分动画?你可以做你想做的,如果你在你想做的时间间隔内计算并启动计时器,但我怀疑你会得到你想要的。您可能希望查看UIImageView,并为其提供一组图像来制作动画,或者自己通过绘画来制作动画。

我想出了一个不同的解决方案:

我知道我希望“计数”能持续3秒。。。也就是60*0.05。。。基本上,计时器会按该方法60次,以获得总量

addUpAb = [NSTimer scheduledTimerWithTimeInterval:0.05 target:self selector:@selector(addUpTimer) userInfo:nil repeats:YES];

-(void)addUpTimer {
    int addNo = abTOT / 60;    
    abInt += addNo;

    abductionCount.text = [NSString stringWithFormat:@"%d", abInt];

    if(abInt >= abTOT) {
        [addUpAb invalidate];
        abCount.text = [NSString stringWithFormat:@"%d", abTOT];
        }
    }

谢谢Alexey。。。我如何衡量时间流逝了多少?我实际上是在显示一些东西的总数。。。但我想用“计数”来想象一下。你应该用CADisplayLink而不是Ntimers来做动画。谢谢Marcelo。。。它对我来说很好(性能方面)。。您推荐CADisplayLink的原因是什么?它将使动画与显示器同步,从而产生更平滑的动画。在您的情况下,如果发生了什么事情(例如:一个电话,背景上的一些事情),NSTimer不会在0.05秒后触发。(我刚刚注意到亚历克赛也说了同样的话,呵呵)太棒了。。。我会玩的。谢谢