今天做进度条,查了几个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
简单,方便
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];