最近项目中有需求要做一个类似余额宝数值增加的动画:
//启动定时器
[NSTimer scheduledTimerWithTimeInterval:0.001 target:self selector:@selector(timerFireMethod:) userInfo:nil repeats:YES];
/**
* @brief 计时方法
*
* @param theTimerP NSTimer
*/
#pragma mark - 计时方法
- (void)timerFireMethod:(NSTimer *)theTimerP
{
//根据数值大小判断平均增加值
float aver = 1;
if (self.result>1000){
aver = 100;
}else if (self.result>100){
aver = 200;
}else if (self.result>10){
aver = 500;
}else{
aver = 800;
}
//增加平均值
self.index += self.result/aver;
//判断是否达到随机数值
if (self.index<self.result) {
//判断随机数是否小于10
if (self.result<=10) {
//小于等于10,增加时显示小数点后两位
self.lab.text = [NSString stringWithFormat:@"%.2f",self.index];
}else{
//否则,增加时不显示小数位
self.lab.text = [NSString stringWithFormat:@"%.0f",self.index];
}
}else {
//达到随机数值
//开始值设置为初始值
self.index = 0;
//标签设置为随机数值
self.lab.text = [NSString stringWithFormat:@"%.0f",self.result];
//关闭计时器
[theTimerP invalidate];
}
}原文:http://blog.csdn.net/zhgcrichard/article/details/38514533