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プロパティも試してみました。しかし、一時停止した位置からアニメーションを再開することはできません。
私を助けてください。
前もって感謝します。