进度条-两个不错的demo

今天做进度条,查了几个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];
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,890评论 18 139
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,510评论 0 17
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,142评论 25 708
  • 两年后 我们分离 你在西我在东 偏离 我搜寻着可能碰撞的纬点 越走越远 那年遇见你 我已不是我 抽搐的魂灵 只停留...
    王子真心阅读 143评论 2 0
  • 从小到大,总是听到无数人说“要努力”,也跟无数人说过“要努力”;可生活中真正努力的人却始终就那几个。一直想...
    夜来听潮阅读 258评论 0 0