美文网首页
CALayer上动画的暂停和恢复

CALayer上动画的暂停和恢复

作者: Maggie的小蜗居 | 来源:发表于2017-01-08 21:17 被阅读62次

iOS10自带了暂停动画的方法

在iOS10以下 需要自己实现

1.暂停layer动画

- (void)pauseLayer:(CALayer*)layer 
{ 
    CFTimeInterval pausedTime = [layer convertTime:CACurrentMediaTime() fromLayer:nil]; 
    layer.timeOffset = pausedTime; 
    //暂停
    layer.speed = 0.0; 

} 

2.恢复layer上的动画

- (void)resumeLayer:(CALayer*)layer 
{ 
    CFTimeInterval pausedTime = [layer timeOffset]; 
    //暂停时间
    CFTimeInterval timeSincePause = [layer convertTime:CACurrentMediaTime() fromLayer:nil] - pausedTime; 
    取消暂停
    layer.timeOffset = 0.0; 
    layer.beginTime = 0.0; 
    layer.beginTime = timeSincePause;
    //恢复动画 
    layer.speed = 1.0; 

}

相关文章

网友评论

      本文标题:CALayer上动画的暂停和恢复

      本文链接:https://www.haomeiwen.com/subject/gphcbttx.html