2

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

请帮我。

提前致谢。

4

0 回答 0