进度条-两个不错的demo

今天做进度条,查了几个demo,选定两个比较通用的给大家
第一种:ASProgressPopUpView 样式好看

进度条-两个不错的demo_第1张图片

https://github.com/alskipp/ASProgressPopUpView

//渐变进度条
//创建设置frame
ASProgressPopUpView *SPIprogressView = [[ASProgressPopUpView alloc]initWithFrame:CGRectMake(20, 30, 240, 50)];
//设置字体大小
SPIprogressView.font= [UIFont fontWithName:@"Futura-CondensedExtraBold"size:8];
//设置渐变颜色
SPIprogressView.popUpViewAnimatedColors =@[[UIColor greenColor],[UIColor redColor]];
//设置是否开启数值气泡
[SPIprogressView showPopUpViewAnimated:**YES**];
//设置气泡圆角
SPIprogressView.popUpViewCornerRadius=0.0;
//设置进度参数
self.SPIprogressView.progress = 0.8;
[self addSubview:SPIprogressView];
self.SPI= SPIprogressView;

可以在不同的值范围显示不同的气泡内容,有外部接口

进度条-两个不错的demo_第2张图片
    - (NSString *)progressView:(ASProgressPopUpView *)progressView stringForProgress:(float)progress
    {
        NSString *s;
        if (progress < 0.2) {
            s = @"Just starting";
        } else if (progress > 0.4 && progress < 0.6) {
            s = @"About halfway";
        } else if (progress > 0.75 && progress < 1.0) {
            s = @"Nearly there";
        } else if (progress >= 1.0) {
            s = @"Complete";
        }
        return s;
    }

并且在ASProgressPopUpView.m中随意修改气泡内的值,因为他提供的外部接口并不怎么好用
修改- (void)updatePopUpView函数中的

progressString = [self.dataSource progressView:self stringForProgress:self.progress] ?:
                 [[NSString alloc]initWithFormat:@"SPI:%@",[_numberFormatter stringFromNumber:@(self.progress * 2)]];

在- (void)setup函数中可以修改_numberFormatter数值的格式

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
    [formatter setNumberStyle:NSNumberFormatterDecimalStyle];
    _numberFormatter = formatter;

在此顺便附上stringFromNumber用法

最后使用已有的 stringFromNumber Function 就可以把数字转换成格式化了的NSString了!
setNumberStyle 最常用的三个参数:
NSNumberFormatterDecimalStyle ﹣ 保留小数
NSNumberFormatterCurrencyStyle ﹣ 货币
NSNumberFormatterPercentStyle ﹣ 百分比

而下是最简单的一个例子:

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
NSLog(@"%@",[numberFormatter stringFromNumber:[NSNumber numberWithFloat:1234567.89]]);

Log出来的结果,你会看到的是1,234,567.875。
但是可能因某些情況下,你会发现格式化未能满足你的需要。比如使用 NSNumberFormatterCurrencyStyle 格式化后的总会带一个“$”的符号, 但如果使用 NSNumberFormatterDecimalStyle , 又会出现3个位的小数。因此我们要可以使用 setPositiveFormat 来自定格式, 应该会是最后最直接吧。 (当然你也可以使用其他Function 来修改小数点及分割位等)。

NSNumberFormatter *moneyFormatter = [[NSNumberFormatter alloc] init];
[moneyFormatter setPositiveFormat:@"###,##0.00;"];
NSLog(@"%@",[moneyFormatter stringFromNumber:[NSNumber numberWithFloat:1234567.89]]);

Log出来的结果,你会看到的是1,234,567.88。

第二中:LXGradientProcessView
简单,方便

进度条-两个不错的demo_第3张图片
Paste_Image.png

https://github.com/xl20071926/LXGradientProcessView

// 渐变进度条
    self.processView = [[LXGradientProcessView alloc] initWithFrame:CGRectMake(20.f, 100.f, SCREEN_WIDTH - 40.f, 45.f)];
//传进度参数
    self.processView.percent = 80;
    [self.view addSubview:self.processView];

你可能感兴趣的:(进度条-两个不错的demo)