仿照余额宝余额动态变动
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++; }
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- C#实现按照指定长度在数字前补0方法小结
- C#动态调整数组大小的方法
- Lua中数字for循环实例
- C#实现将千分位字符串转换成数字的方法
- 阿拉伯数字转大写中文_财务常用sql存储过程
- C# 正则判断一个数字的格式是否有逗号的代码
- C#、ASP.NET通用工具类IsWhat?(可以判断数字、身份证、数据类型等等)
- SQL字符串以及数字常用操作汇总
- 从jsp发送动态图像
- 编程语言里的静态、动态、强类型、弱类型等概念介绍
- C++实现数字转换为十六进制字符串的方法
- php中动态变量用法实例
- php获取四位字母和数字的随机数的实现方法