在iOS中暂停和播放CAKeyFrameAnimation

时间:2012-10-22 08:49:49

标签: ios animation cabasicanimation cakeyframeanimation

我正在使用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的删除动画属性。它有效!!但我无法从暂停的位置恢复动画。

请帮帮我。

先谢谢。

0 个答案:

没有答案