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 回答