use*_*209 2 background objective-c cabasicanimation ios
我正在实施一个游戏,其中我有一些CABasicAnimations.例如,像这样:
CABasicAnimation * borddroit = [CABasicAnimation animationWithKeyPath:@"transform.translation.x"];
borddroit.fromValue = [NSNumber numberWithFloat:0.0f];
borddroit.toValue = [NSNumber numberWithFloat:749.0f];
borddroit.duration = t;
borddroit.repeatCount = 1;
[ImageSuivante2.layer addAnimation:borddroit forKey:@"borddroit"];
Run Code Online (Sandbox Code Playgroud)
我用这个函数把它暂停:
-(void)pauseLayer:(CALayer*)layer
{
CFTimeInterval pausedTime = [layer convertTime:CACurrentMediaTime() fromLayer:nil];
layer.speed = 0.0;
layer.timeOffset = pausedTime;
}
Run Code Online (Sandbox Code Playgroud)
当我的应用程序进入后台时,因为用户按下主页按钮,动画在暂停时正确设置,但是当我重新打开我的应用程序时,动画已经消失.
我该怎么办呢?
谢谢
这是正确的内置行为.当您离开应用程序时,所有动画都会从其图层中删除:系统会调用removeAllAnimations每个图层.
这通常无关紧要,原因如下:假设您将球从A点动画到B点,当用户从您的应用程序切换时,它在动画中位于B点的一半.当用户回来时,动画消失,但是球在 B点,所以应用程序可以继续.所有这一切都是我们跳过了一些动画部分.