最近項目中有需求要做一個類似餘額寶數值增加的動畫:
//啓動定時器
[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];
}
}