金额跳动动画效果

作者 : 开心源码 本文共1799个字,预计阅读时间需要5分钟 发布时间: 2022-05-12 共190人阅读

金额跳动效果

前言

金额效果,由于觉得公司目前的金额太乏味,决定加点效果,也特此写了个小demo,代码非常简单,贴代码方便大家看看

通过 runtime 建立属性(setter/getter方法)

/** 因为分类中要增加属性,所以通过runtime方法来实现 */- (void)setAnimatedNumber:(NSNumber *)animatedNumber {    objc_setAssociatedObject(self, "animatedNumber", animatedNumber, OBJC_ASSOCIATION_RETAIN_NONATOMIC);}- (NSNumber *)animatedNumber {    return objc_getAssociatedObject(self, "animatedNumber");}- (void)setTimer:(NSTimer *)timer {    objc_setAssociatedObject(self, "timer", timer, OBJC_ASSOCIATION_RETAIN_NONATOMIC);}- (NSTimer *)timer {    return objc_getAssociatedObject(self, "timer");}- (void)setValueString:(NSString *)valueString {    objc_setAssociatedObject(self, "valueString", valueString, OBJC_ASSOCIATION_RETAIN_NONATOMIC);}- (NSString *)valueString {    return objc_getAssociatedObject(self, "valueString");}

变量初始化以及定时器

- (void)dw_setNumber:(NSNumber *)number {    [self dw_setNumber:number duration:5.0];  //这里,我写5秒,是为了方便我录gif,用中可以改为1或者者2}

显示金额动画

- (void)changeAnimation:(NSTimer *)timer{    NSMutableDictionary *info = timer.userInfo;    int begin = (int)[info objectForKey:kBeginNumberKey];    int end = ((NSNumber *)[info objectForKey:kEndNumberKey]).intValue;    int range = ((NSNumber *)[info objectForKey:kRangeNumberKey]).intValue;        NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];    [formatter setNumberStyle:NSNumberFormatterNoStyle];    [formatter setFormatWidth:9];    [formatter setPositiveFormat:@",##0.00"];    int value = self.valueString.intValue;        if (value == 0) {        self.valueString = [NSString stringWithFormat:@"%d", begin];        self.text = [NSString stringWithFormat:@"%.@",[formatter stringFromNumber:@(begin)]];    } else if (value >= end) {        self.text = [NSString stringWithFormat:@"%.@",[formatter stringFromNumber:@(end)]];        [self.timer invalidate];        self.timer = nil;        return;    } else {        value += range;        self.valueString = [NSString stringWithFormat:@"%d", value];        self.text = [NSString stringWithFormat:@"%.@",[formatter stringFromNumber:@(value)]];            }    }

上一篇 目录 已是最后

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 金额跳动动画效果

发表回复