Latest 0.0.9
License MIT
Platforms ios 5.0, requires ARC


VAProgressCircle is a custom loading animation for loading iOS content from 0 to 100%.


  • ARC
  • iOS 5.0+


  1. VAProgressCircle can be installed via CocoaPods by adding pod 'VAProgressCircle' to your podfile, or you can manually add UICountingLabel.h/.m and VAProgressCircle.h/.m into your project.
  2. Either create a VAProgressCircle by using a UIView in your Interface Builder, subclassing it to VAProgressCircle, and linking it up to a property in your UIViewController or by using - (id)initWithFrame:(CGRect)frame

    self.progressCircle = [[VAProgressCircle alloc] initWithFrame:CGRectMake(50, 60, 250, 250)];
    [self.view addSubview:self.circleChart];


Set the base color of your VAProgressCircle.

[self.progressCircle setColor:[UIColor greenColor]];

//Or you can specify a highlight color with your base color

[self.progressCircle setColor:[UIColor greenColor] withHighlightColor:VADefaultGreen];

VAProgressCircle has the ability to transition from one color to another as it reaches 100%. This can be enabled by setting your transitionType.

self.progressCircle.transitionType = VAProgressCircleColorTransitionTypeGradual;

Set the transition color of your VAProgressCircle.

[self.progressCircle setTransitionColor:[UIColor blueColor]];

//Or you can specify a highlight color with your transition color

[self.progressCircle setColor:[UIColor blueColor] withHighlightTransitionColor:VADefaultBlue];

Use the progessBlock to add functionality to execute before or after a progress piece has finished animating

self.circleChart.progressBlock = ^(int progress, BOOL isAnimationCompleteForProgress){

    //Add custom block functionality here


If you need the delegate pattern, do not implement the block and set your delegate and they will get called instead

- (void)viewDidLoad
    self.progressCircle.delegate = self;

#pragma mark - VAProgressCircleDelegate

- (void)progressCircle:(VAProgressCircle *)circle willAnimateToProgress:(int)progress
    //Add custom delegate functionality here

- (void)progressCircle:(VAProgressCircle *)circle didAnimateToProgress:(int)progress
    //Add custom delegate functionality here

Toggle animation features of the VAProgressCircle.

@property BOOL shouldShowAccentLine;
@property BOOL shouldShowFinishedAccentCircle;
@property BOOL shouldHighlightProgress;
@property BOOL shouldNumberLabelTransition;

Set the rotation direction of your VAProgressCircle.

self.progressCircle.rotationDirection = VAProgressCircleRotationDirectionClockwise;


VAProgressCircle is available under the MIT license. See the LICENSE file for more info.

Latest podspec

    "name": "VAProgressCircle",
    "version": "0.0.9",
    "summary": "A custom loading bar for iOS",
    "homepage": "",
    "license": "MIT",
    "authors": {
        "Mitch Malleo": "[email protected]"
    "source": {
        "git": "",
        "tag": "0.0.9"
    "platforms": {
        "ios": "5.0"
    "requires_arc": true,
    "source_files": [

Pin It on Pinterest

Share This