我正在使用CAkeyframeanimation为calayer做动画。实际上我正在使用位置属性通过使用CAkeyframeanimation来移动calayer。我想暂停calayer移动动画。当我点击屏幕时它应该从哪里恢复它暂停了。
我为calayer添加了两个动画。一个用于更改calayer的bounds属性另一个是位置属性。所以我使用两个动画用于单个calayer但我想暂停calayer util的位置属性动画我点按屏幕。点击后它应该从暂停位置恢复。
我使用了以下代码,但它停止了我应用于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的删除动画属性。它有效!!但我无法从暂停的位置恢复动画。
请帮帮我。
先谢谢。