Translate_offine/HDwallpaper/Tool/CircularProgressView.m
bluesea 2872cc6aeb d
2024-07-23 15:29:59 +08:00

59 lines
1.7 KiB
Objective-C

//
// CircularProgressView.m
// HD wallpaper
//
#import "CircularProgressView.h"
@implementation CircularProgressView
- (instancetype)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
_progress = 0.0;
_progressColor = [UIColor blueColor];
_trackColor = [UIColor lightGrayColor];
self.backgroundColor = [UIColor clearColor];
}
return self;
}
- (void)setProgress:(CGFloat)progress {
_progress = progress;
[self setNeedsDisplay];
}
- (void)drawRect:(CGRect)rect {
CGContextRef context = UIGraphicsGetCurrentContext();
CGFloat lineWidth = 10.0;
CGRect circleRect = CGRectInset(self.bounds, lineWidth / 2.0, lineWidth / 2.0);
// 画背景圆环
CGContextSetStrokeColorWithColor(context, self.trackColor.CGColor);
CGContextSetLineWidth(context, lineWidth);
CGContextStrokeEllipseInRect(context, circleRect);
// 画进度条
CGFloat startAngle = -M_PI_2;
CGFloat endAngle = startAngle + self.progress * 2.0 * M_PI;
CGContextSetStrokeColorWithColor(context, self.progressColor.CGColor);
CGContextSetLineWidth(context, lineWidth);
CGContextAddArc(context, CGRectGetMidX(circleRect), CGRectGetMidY(circleRect), CGRectGetWidth(circleRect) / 2.0, startAngle, endAngle, 0);
CGContextStrokePath(context);
}
//#import "CircularProgressView.h"
//
//// 创建并添加CircularProgressView
//CircularProgressView *progressView = [[CircularProgressView alloc] initWithFrame:CGRectMake(100-1,100-1,200-1,200-1)];
//progressView.progressColor = [UIColor redColor];
//progressView.trackColor = [UIColor grayColor];
//[self.view addSubview:progressView];
//
//// 设置进度
//progressView.progress = 0.75; // 75% 进度
@end