Skip to content

Instantly share code, notes, and snippets.

@edwardean
Created August 22, 2017 14:47
Show Gist options
  • Save edwardean/2916b0adec69233420f0d982e968c5b7 to your computer and use it in GitHub Desktop.
Save edwardean/2916b0adec69233420f0d982e968c5b7 to your computer and use it in GitHub Desktop.
Pause and resume CALayer's animation
- (void)pauseLayer:(CALayer *)layer {
CFTimeInterval pausedTime = [layer convertTime:CACurrentMediaTime() fromLayer:nil];
layer.speed = 0.0f;
layer.timeOffset = pausedTime;
}
- (void)resumeLayer:(CALayer *)layer {
CFTimeInterval pausedTime = [layer timeOffset];
layer.speed = 1.0;
layer.timeOffset = 0.0;
layer.beginTime = 0.0;
CFTimeInterval timeSincePause = [layer convertTime:CACurrentMediaTime() fromLayer:nil] - pausedTime;
layer.beginTime = timeSincePause;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment