iOS用CADisplayLink写一个ContinueLabel

本文介绍一个用CADisplayLink实现一个简单的ContinueLabel。

1、CADisplayLink

CADisplayLink是一个能让我们以和屏幕刷新率同步的频率将特定的内容画到屏幕上的定时器类,iOS设备的屏幕刷新频率(FPS)是60Hz,因此CADisplayLink的默认调用周期是每秒60次,这个周期可以通过frameInterval属性设置。
主要方法:

_displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(updateNumber)];
[_displayLink addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSRunLoopCommonModes];

2、NSNumberFormatter

NSNumberFormatter用于格式化输出NSNumber;
主要属性:

  1. numberStyle
NSNumberFormatter *numberF = [NSNumberFormatter new];
    numberF.locale = [NSLocale localeWithLocaleIdentifier:@"ZH_CN"];
    //    numberF.formatWidth = 15;//15位输出,不足补 *
    NSNumber *number = @12345.6789;
    numberF.numberStyle = NSNumberFormatterDecimalStyle;//小数形式:12,345.679
    NSLog(@"DecimalStyle: %@",[numberF stringFromNumber:number]);
    numberF.numberStyle = NSNumberFormatterCurrencyStyle;//货币形式,中国:¥
    NSLog(@"CurrencyStyle: %@",[numberF stringFromNumber:number]);
    numberF.numberStyle = NSNumberFormatterPercentStyle;//百分百
    NSLog(@"PercentStyle: %@",[numberF stringFromNumber:number]);
    numberF.numberStyle = NSNumberFormatterScientificStyle;//科学计数
    NSLog(@"ScientificStyle: %@",[numberF stringFromNumber:number]);
    numberF.numberStyle = NSNumberFormatterSpellOutStyle;//全拼,中国是 一万两千...
    NSLog(@"SpellOutStyle: %@",[numberF stringFromNumber:number]);
    numberF.numberStyle = NSNumberFormatterOrdinalStyle;//序号,第...,四舍五入
    NSLog(@"OrdinalStyle: %@",[numberF stringFromNumber:number]);
    numberF.numberStyle = NSNumberFormatterCurrencyISOCodeStyle;
    NSLog(@"CurrencyISOCodeStyle: %@",[numberF stringFromNumber:number]);
  1. 其它属性
    zeroSymbol:number等于零时的样式;
    decimalSeparator:小数点的样式;
    positivePrefix/positiveSuffix、negativePrefix/negativeSuffix:正数/负数的前缀/后缀;
    minimumFractionDigits:小数位最少位数;
    maximumFractionDigits:小数位最多位数;
    roundingIncrement:四舍五入的增量值,比如以10为进位值,那么156就进位为160,154进位为150;
    其它属性还有很多,大家可以自己尝试...

3、最后

iOS用CADisplayLink写一个ContinueLabel_第1张图片
YContinueLabel_Demo.gif

show me the code

你可能感兴趣的:(iOS用CADisplayLink写一个ContinueLabel)