Apple の以下のコードを使用して、アニメーションを一時停止および再開しています。
一時停止ボタンをクリックすると、まずアニメーションを一時停止してからポップアップを表示します。ポップアップの再生ボタンをクリックすると、最初にポップアップを削除してからアニメーションを再開します。私が直面している問題は、再開に失敗することがあるということです。アニメーションは一時停止したままです。これは、アニメーションの一時停止と再開を遅延なく繰り返したときに発生します。
- (void)pauseAnimation:(CALayer *)layer
{
if (m_pCustomImageBtnObj != nil)
{
CFTimeInterval pausedTime =
[layer convertTime:CACurrentMediaTime() fromLayer:nil];
layer.speed = 0.0;
layer.timeOffset = pausedTime;
}
}
- (void)resumeAnimation
{
if (m_pCustomImageBtnObj != nil)
{
CFTimeInterval pausedTime = [m_pCustomImageBtnObj.layer timeOffset];
m_pCustomImageBtnObj.layer.speed = 1.0;
m_pCustomImageBtnObj.layer.timeOffset = 0.0;
m_pCustomImageBtnObj.layer.beginTime = 0.0;
CFTimeInterval timeSincePause =
[m_pCustomImageBtnObj.layer convertTime:CACurrentMediaTime()
fromLayer:nil] - pausedTime;
m_pCustomImageBtnObj.layer.beginTime = timeSincePause;
}
}