Skip to content

Commit

Permalink
Added duration option to setProgress
Browse files Browse the repository at this point in the history
  • Loading branch information
bfolkens committed Mar 16, 2015
1 parent cc4b128 commit 5bd1317
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 1 deletion.
1 change: 1 addition & 0 deletions DACircularProgress/DACircularProgressView.h
Expand Up @@ -23,5 +23,6 @@

- (void)setProgress:(CGFloat)progress animated:(BOOL)animated;
- (void)setProgress:(CGFloat)progress animated:(BOOL)animated initialDelay:(CFTimeInterval)initialDelay;
- (void)setProgress:(CGFloat)progress animated:(BOOL)animated initialDelay:(CFTimeInterval)initialDelay withDuration:(CFTimeInterval)duration;

@end
14 changes: 13 additions & 1 deletion DACircularProgress/DACircularProgressView.m
Expand Up @@ -191,14 +191,26 @@ - (void)setProgress:(CGFloat)progress animated:(BOOL)animated
- (void)setProgress:(CGFloat)progress
animated:(BOOL)animated
initialDelay:(CFTimeInterval)initialDelay
{
CGFloat pinnedProgress = MIN(MAX(progress, 0.0f), 1.0f);
[self setProgress:progress
animated:animated
initialDelay:initialDelay
withDuration:fabsf(self.progress - pinnedProgress)];
}

- (void)setProgress:(CGFloat)progress
animated:(BOOL)animated
initialDelay:(CFTimeInterval)initialDelay
withDuration:(CFTimeInterval)duration
{
[self.layer removeAnimationForKey:@"indeterminateAnimation"];
[self.circularProgressLayer removeAnimationForKey:@"progress"];

CGFloat pinnedProgress = MIN(MAX(progress, 0.0f), 1.0f);
if (animated) {
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"progress"];
animation.duration = fabsf(self.progress - pinnedProgress); // Same duration as UIProgressView animation
animation.duration = duration;
animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
animation.fillMode = kCAFillModeForwards;
animation.fromValue = [NSNumber numberWithFloat:self.progress];
Expand Down

0 comments on commit 5bd1317

Please sign in to comment.