The recent Apple Tech Note QA1673 describes how to pause / resume layer animations.
A list of pausing and resuming animations is shown below:
-(void)pauseLayer:(CALayer*)layer { CFTimeInterval pausedTime = [layer convertTime:CACurrentMediaTime() fromLayer:nil]; layer.speed = 0.0; 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; }
Edit: iOS 10 introduced a new API - UIViewPropertyAnimator, which allows you to process animations more interactively, for example, makes it easy to pause and resume animations, or βsearchβ it for a specific progress value.
Vladimir Jun 09 2018-10-06T00: 00Z
source share