您的位置:首页 > 移动开发 > IOS开发

仿照余额宝余额动态变动

2015-07-16 17:28 441 查看

仿照余额宝余额动态变动

@implementation yuebaoView
{
NSTimer *_yesterdayIncomeLabelAnimationTimer;
NSTimer *_totalMoneyAmountLabelAnimationTimer;
}

- (void)setNumberTextOfLabel:(UILabel *)label WithAnimationForValueContent:(CGFloat)value
{
CGFloat lastValue = [label.text floatValue];
CGFloat delta = value - lastValue;
if (delta == 0) return;

if (delta > 0) {

CGFloat ratio = value / 60.0;

NSDictionary *userInfo = @{@"label" : label,
@"value" : @(value),
@"ratio" : @(ratio)
};
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:0.02 target:self selector:@selector(setupLabel:) userInfo:userInfo repeats:YES];
if (label == self.yesterdayIncomeLabel) {
_yesterdayIncomeLabelAnimationTimer = timer;
} else {
_totalMoneyAmountLabelAnimationTimer = timer;
}
}
}

- (void)setupLabel:(NSTimer *)timer
{
NSDictionary *userInfo = timer.userInfo;
UILabel *label = userInfo[@"label"];
CGFloat value = [userInfo[@"value"] floatValue];
CGFloat ratio = [userInfo[@"ratio"] floatValue];

static int flag = 1;
CGFloat lastValue = [label.text floatValue];
CGFloat randomDelta = (arc4random_uniform(2) + 1) * ratio;
CGFloat resValue = lastValue + randomDelta;

if ((resValue >= value) || (flag == 50)) {
label.text = [NSString stringWithFormat:@"%.2f", value];
flag = 1;
[timer invalidate];
timer = nil;
return;
} else {
label.text = [NSString stringWithFormat:@"%.2f", resValue];
}

flag++;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios 动态 变动 数字