0

次のようなループ アニメーションがあります。

       UIView.Animate(50, 0, UIViewAnimationOptions.Repeat | UIViewAnimationOptions.CurveLinear, () => { 
            bgBackground.Frame = new RectangleF(new PointF(-496, bgBackground.Frame.Y), bgBackground.Frame.Size);
        }, () => {});

アプリがバックグラウンドになり、アニメーションが実行されていない場合。

アプリがフォアグラウンドになったときのイベントをリッスンしましたが、アニメーションを再開する方法がわかりません。

CABasicAnimation を使用して別のループ アニメーションがあり、アプリを再開するときにまだ実行中なので、ループ アニメーションに UIView ベースのアニメーションを使用できませんか?

他の同様の質問では、解決策として CALayer アニメーションが提供されています。

4

1 に答える 1

0

CABasicAnimationを使用するように書き直したところ、すべてがうまく機能しました。

CABasicAnimation animSc;
animSc = CABasicAnimation.FromKeyPath("transform.translation.x");
animSc.From = NSNumber.FromFloat(0.0f);
animSc.To = NSNumber.FromFloat(-496.0f);
animSc.Duration = 50.0f;
animSc.RepeatCount = INFITE_NUMBER;
bgView.Layer.AddAnimation(animSc, "bg_anim");

そして、ビューが表示され、すべてが再びアニメーション化を開始したときに、上記のコードを呼び出すだけです。

于 2012-04-16T18:57:25.450 に答える