使用timeOffSet进行CAAnimation

时间:2018-03-30 10:23:29

标签: ios caanimation

我有一个持续时间为5.0秒的动画。在播放动画的同时,我将其暂停在2.0秒并做其他一些事情(转移到其他视图控制器,推,弹......)。然后我回到这个viewcontroller并从第二个2.0继续动画。我用timeOffSet = 2.0让它工作顺利,但仍然有一个问题:它有2秒的剩余,这是动画的前2秒.....我怎样才能删除它? < / p>

使用timeOffSet进程的动画:

enter image description here

1 个答案:

答案 0 :(得分:0)

Duplicated answer

-(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;
}