This control is a simple view that counts down a specified amount and alerts you on completion. You can see this live in Teleportante.
This example uses Cocoapods, please install before running.
Navigate to DemoApp and run pod install in your terminal. Open DemoApp.xcworkspace and run the application.
Easiest installation is through Cocoapods. Add the following line to your Podfile:
pod `JWGCircleCounter`and run pod install in your terminal.
Alternatively, you can manually add the files in the JWGCircleCounter directory to your project.
Start by creating a JWGCircleCounter of your own and add it to your view:
JWGCircleCounter *circleCounter = [[JWGCircleCounter alloc] initWithFrame:CGRectMake(0,0,40,40)];
...
[your_view addSubview:circleCounter];After initialization, start the counter by:
[circleCounter startWithSeconds:5];Once it's been started, the counter can be managed with:
[circleCounter stop];
[circleCounter resume];When the frame is set, the circle counter will expand to fit the bounds.
The following properties can be set:
@property (nonatomic, strong) UIColor *circleColor;
@property (nonatomic, strong) UIColor *circleBackgroundColor;
@property (nonatomic, assign) CGFloat circleTimerWidth;You can inspect the state of a counter through a few readonly properties:
@property (nonatomic, assign, readonly) BOOL didStart;
@property (nonatomic, assign, readonly) BOOL isRunning;
@property (nonatomic, assign, readonly) BOOL didFinish;Please write tests and ensure that existing tests pass too. Open a pull request when you're ready.
- Move
didStart,isRunning, anddidFinishproperties to an enum. - Create a single "smart" method that can do start/pause/restart.
This was inspired by pppoe's Circle-Counter-Down. Thank you!

