暂停和恢复加载屏幕的CABasicAnimation?

the*_*tic 6 objective-c cabasicanimation ios

我已经实现了一个LoadingLayer类,它有一些动画元素(准确地说是2个),它们是动画的CABasicAnimation.现在,此加载屏幕视图在整个应用程序中持续存在.隐藏视图是否会停止所有动画?或者让我重新说一句:是否有很多记忆我不得不担心或可能导致滞后?我尝试使用-pauseLayer:-resumeLayer:方法,但由于我的应用程序中的多线程,它们导致了一些问题.因此,只需隐藏并显示加载屏幕,其动画一直在运行吗?

Nic*_*ico 9

https://developer.apple.com/library/content/qa/qa1673/_index.html

-(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;
}
Run Code Online (Sandbox Code Playgroud)