iOS don't provide pre-build 'Circular Progress View/Bar' like UIProgressBar.
Implementing a 'Circular Progress View' is simple in iOS. Here piece of code for implement 'Circular Progress View'.
1) Create a Sub-Class of UIView Class
@interface CircularProgressView : UIView
{
CGFloat startAngle;
CGFloat endAngle;
}
@property (nonatomic, assign) CGFloat percentage;
-(id) initWithFrame:(CGRect)frame;
@end
#import "CircularProgressView.h"
@implementation CircularProgressView
-(id) initWithFrame:(CGRect)frame{
self = [super initWithFrame:frame];
if (self) {
startAngle = M_PI * 1.5;
endAngle = startAngle + (M_PI*2);
}
return self;
}
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect {
CGContextRef context = UIGraphicsGetCurrentContext();
[[UIColor colorWithRed:(CGFloat)235/255 green:(CGFloat)237/255 blue:(CGFloat)236/255 alpha:1] setStroke];
UIBezierPath *benzierPathBack = [UIBezierPath bezierPath];
[benzierPathBack addArcWithCenter:CGPointMake(rect.size.width / 2, rect.size.height / 2) radius:(rect.size.width / 2 - 5) startAngle:startAngle endAngle:(endAngle - startAngle) * (100 / 100.0) + startAngle clockwise:YES];
benzierPathBack.lineWidth = 10;
[benzierPathBack stroke];
CGContextSaveGState(context);
UIBezierPath* bezierPath = [UIBezierPath bezierPath];
// Create our arc, with the correct angles
[bezierPath addArcWithCenter:CGPointMake(rect.size.width / 2, rect.size.height / 2) radius:(rect.size.width / 2-5) startAngle:startAngle endAngle:(endAngle - startAngle) * (_percentage / 100.0) + startAngle clockwise:YES];
// Set the display for the path, and stroke it
bezierPath.lineWidth = 10;
[[UIColor colorWithRed:(CGFloat)1/255 green:(CGFloat)111/255 blue:(CGFloat)37/255 alpha:1] setStroke];
[bezierPath stroke];
}
Import CircularProgressView Class, create an object and change percentage value, you can see a 'Circular Progress View'.
Implementing a 'Circular Progress View' is simple in iOS. Here piece of code for implement 'Circular Progress View'.
1) Create a Sub-Class of UIView Class
@interface CircularProgressView : UIView
{
CGFloat startAngle;
CGFloat endAngle;
}
@property (nonatomic, assign) CGFloat percentage;
-(id) initWithFrame:(CGRect)frame;
@end
#import "CircularProgressView.h"
@implementation CircularProgressView
-(id) initWithFrame:(CGRect)frame{
self = [super initWithFrame:frame];
if (self) {
startAngle = M_PI * 1.5;
endAngle = startAngle + (M_PI*2);
}
return self;
}
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect {
CGContextRef context = UIGraphicsGetCurrentContext();
[[UIColor colorWithRed:(CGFloat)235/255 green:(CGFloat)237/255 blue:(CGFloat)236/255 alpha:1] setStroke];
UIBezierPath *benzierPathBack = [UIBezierPath bezierPath];
[benzierPathBack addArcWithCenter:CGPointMake(rect.size.width / 2, rect.size.height / 2) radius:(rect.size.width / 2 - 5) startAngle:startAngle endAngle:(endAngle - startAngle) * (100 / 100.0) + startAngle clockwise:YES];
benzierPathBack.lineWidth = 10;
[benzierPathBack stroke];
CGContextSaveGState(context);
UIBezierPath* bezierPath = [UIBezierPath bezierPath];
// Create our arc, with the correct angles
[bezierPath addArcWithCenter:CGPointMake(rect.size.width / 2, rect.size.height / 2) radius:(rect.size.width / 2-5) startAngle:startAngle endAngle:(endAngle - startAngle) * (_percentage / 100.0) + startAngle clockwise:YES];
// Set the display for the path, and stroke it
bezierPath.lineWidth = 10;
[[UIColor colorWithRed:(CGFloat)1/255 green:(CGFloat)111/255 blue:(CGFloat)37/255 alpha:1] setStroke];
[bezierPath stroke];
}
Import CircularProgressView Class, create an object and change percentage value, you can see a 'Circular Progress View'.