我有一个值为0的UILabel和一个值为300的int。如何使用NSTimer让UILabel在2秒内从0到300?我希望它看起来像是逐步加起来的。
提前致谢!
答案 0 :(得分:1)
实际上NSTimer
精度约为50-100毫秒,所以它不能如你想要的那么平滑。但是你可以安排0.05的计时器,并测量从一开始真正经过的时间。使用后
value = timePassedInSeconds*300/2;
NSString* label = [NSString stringWithFormat:@"%d", value];
如果这不够顺利,请尝试使用显示链接而不是NSTimer
。
答案 1 :(得分:0)
你想做什么?你想尝试展示某种点/分数动画吗?如果你做数学计算并按照你想要的间隔启动计时器,你可以做你想做的事,但我怀疑你会得到你想要的。您可能希望查看UIImageView并为其提供一系列图像来制作动画,或者通过绘画自行完成动画。
答案 2 :(得分:0)
我想出了一个不同的解决方案:
我知道我希望“计数”持续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];
}
}