我正在使用 CAkeyframeanimation 为 calayer 制作动画。实际上,我正在使用 CAkeyframeanimation 使用 position 属性移动 calayer。我想暂停 calayer 移动动画。当我点击屏幕时,它应该从暂停的地方恢复。
我为 calayer 添加了两个动画。一个是用于更改 calayer 的边界属性,另一个是位置属性。所以我为单个 calayer 使用两个动画,但我想暂停 calayer 的位置属性动画,我点击屏幕。在我点击后,它应该从暂停的位置恢复。
我使用了以下代码,但它停止了我应用于 calayer 的所有动画。
- (void) pauseLayer: (CALayer *) theLayer
{
CFTimeInterval mediaTime = CACurrentMediaTime();
CFTimeInterval pausedTime = [theLayer convertTime: mediaTime fromLayer: nil];
theLayer.speed = 0.0;
theLayer.timeOffset = pausedTime;
}
- (void) removePauseForLayer: (CALayer *) theLayer;
{
theLayer.speed = 1.0;
theLayer.timeOffset = 0.0;
theLayer.beginTime = 0.0;
}
- (void) resumeLayer: (CALayer *) theLayer;
{
CFTimeInterval pausedTime = [theLayer timeOffset];
[self removePauseForLayer: theLayer];
CFTimeInterval mediaTime = CACurrentMediaTime();
CFTimeInterval timeSincePause = [theLayer convertTime: mediaTime fromLayer:nil] - pausedTime;
theLayer.beginTime = timeSincePause;
}
我还尝试了 CAanimtion 的删除动画属性。它有效!但我无法从暂停的位置恢复动画。
请帮我。
提前致谢。