我有UIView。
我的JSON对象每次返回百分比计数如45%或68%等。
我的查询是,当我收到成功的json结果时,我想以编程方式填充背景视图颜色。
假设我收到32%。从左到右35%填充红色,剩余65%白色。
怎么可能?
你能给我一些示例代码吗?
答案 0 :(得分:3)
在故事板中使用 UIView 并将其子类设为 UIProgressView ,或者也可以使用代码制作它。
UIProgressView * progressView = [[UIProgressView alloc]initWithFrame:CGRectMake(0, 0, 100, 100)];
然后您可以使用代码
25%填充红色和剩余白色的示例
progressView.progress = .25;
progressView.trackTintColor = [UIColor whiteColor];
progressView.progressTintColor = [UIColor redColor];
输出
您甚至可以通过在某些计时器方法中更改progressView的进度来为填充设置动画 对于标签,只需抓住UILabel并将其作为子视图添加到progressView。
答案 1 :(得分:0)
如何使用UIView
这样的自定义UIBezierPath
#define PERCENTAGE 0.3f
#define PROGRESS_COLOR [UIColor redColor]
#define FILL_COLOR [UIColor whiteColor]
#define LBL_TEXT @"Some text goes here..."
- (void)drawRect:(CGRect)rect {
[super drawRect:rect];
UIBezierPath *fillPath = [UIBezierPath bezierPathWithRect:rect];
[FILL_COLOR setFill];
[fillPath fill];
CGRect progressRect = rect;
progressRect.size.width = progressRect.size.width * PERCENTAGE;
UIBezierPath *percentagePath = [UIBezierPath bezierPathWithRect:progressRect];
[PROGRESS_COLOR setFill];
[percentagePath fill];
[LBL_TEXT drawInRect:rect withAttributes:@{
NSFontAttributeName : [UIFont systemFontOfSize:20],
NSForegroundColorAttributeName : [UIColor blackColor]
}
];
}