一个能够显示最多8位数字的控件,当您改变显示的数字时,会有一个滚动动画。
效果图
新版本添加了对负数的支持,但尚未经过大量测试,可能存在一些未知错误。如果您不需要负数功能,请安装0.0.1版本。如果您需要展示负数或想尝试新版本,请安装0.0.2版本。如果在使用过程中遇到任何问题,请提出 issue。
0.0.2版本的安装过程与0.0.1相同,只需进行以下替换即可:
target 'TargetName' do
pod 'DPScrollNumberLabel', '~> 0.0.2'
end
注意:0.0.2的接口相对于0.0.1来说略有变化,从0.0.1升级到0.0.2需要进行一些适配
首先在需要使用的地方导入头文件
#import "DPScrollNumberLabel.h"
@interface ViewController ()
@property (nonatomic, strong)DPScrollNumberLabel *scrollLabel;
@end
初始化方法需要传入字体大小或字体,不要设置 frame,只需改变位置即可,因为它的大小是根据字体大小自动计算的
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.scrollLabel = [[DPScrollNumberLabel alloc] initWithNumber:@(1) font:[UIFont fontWithName:@"AppleSDGothicNeo-SemiBold" size:40] textColor:[UIColor grayColor] rowNumber:5];
self.scrollLabel.frame = CGRectMake(100, 100, self.scrollLabel.frame.size.width, self.scrollLabel.frame.size.height);
[self.view addSubview:self.scrollLabel];
}
@end
当想要改变数值时,调用以下方法即可。当 animated 参数为 NO 时不会播放动画
[self.scrollLabel changeToNumber:@(10) animated:YES];
初始化接口分为静态和动态两大类
动态初始化方法不需要传入列数的参数,它的列数会根据展示的数字动态变化。例如:
- (instancetype)initWithNumber:(NSNumber *)number fontSize:(CGFloat)fontSize;
静态初始化可以指定一个列数,当你设置的值大于这个列数时,不会产生任何反应。例如:
- (instancetype)initWithNumber:(NSNumber *)number fontSize:(CGFloat)fontSize rowNumber:(NSUInteger)rowNumber;
关于0.0.2负数模式,共有三种:
SignSettingUnsigned
:仅支持正数,与0.0.1版本保持一致
SignSettingNormal
:支持负数,当显示负数时前面会有-号,当显示正数时前面没有+号
SignSettingSigned
:支持负数,负数前面会有-号,正数前面会有+号
1.动画时间的算法还有一些问题
2.显示的位数有限制,最大8位