最近项目中有需求要做一个类似余额宝数值增加的动画:
//启动定时器 [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