2

CAkeyframeanimation を使用して calayer のアニメーションを実行しています。実際には CAkeyframeanimation を使用して position プロパティを使用して calayer を移動しています。calayer の移動アニメーションを一時停止したいです。画面をタップすると、一時停止した場所から再開するはずです。

私は calayer の 2 つのアニメーションを追加しました。1 つは calayer の境界プロパティを変更するためのもので、もう 1 つは位置プロパティです。したがって、1 つの calayer に 2 つのアニメーションを使用していますが、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のremove animationプロパティも試してみました。しかし、一時停止した位置からアニメーションを再開することはできません。

私を助けてください。

前もって感謝します。

4

0 に答える 0