美文网首页
进度条-两个不错的demo

进度条-两个不错的demo

作者: 小轩言 | 来源:发表于2016-05-27 15:45 被阅读542次

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


    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;
    

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

        - (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
    简单,方便

    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

          本文链接:https://www.haomeiwen.com/subject/pizxdttx.html