首页 > 代码库 > 类似余额宝数值增加的动画

类似余额宝数值增加的动画

最近项目中有需求要做一个类似余额宝数值增加的动画:

Demo下载地址


//启动定时器
    [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];
    }
}