重启UIView重复动画
Restart UIView repeat animation
我在 iOS 中设置了一个重复动画:
[UIView animateKeyframesWithDuration:duration
delay:0.0
options:UIViewKeyframeAnimationOptionRepeat
animations:^{
...
}];
但事实证明,当我显示一个视图控制器然后关闭它时 - 动画似乎已冻结。
我对此进行了研究,发现当应用进入后台时动画会停止。但这里是一个显示在顶部的视图控制器。这会是同样的情况吗?
我发现解决方案是在应用程序退出到后台之前停止动画,如 Apple 这篇文章所示:https://developer.apple.com/library/archive/qa/qa1673/_index.html
我已经尝试过该解决方案,但对我没有用。显示视图控制器后,将调用动画的完成块。
如何解决这种动画卡顿的情况?
要在呈现另一个视图后重新启动动画,请将其放入viewWillAppear
如果您的动画在一段时间后或有条件地开始,只需添加一个 Bool,例如 animationHasStarted
,在 viewWillAppear
中检查它,看看您是否应该 运行 动画
我在 iOS 中设置了一个重复动画:
[UIView animateKeyframesWithDuration:duration
delay:0.0
options:UIViewKeyframeAnimationOptionRepeat
animations:^{
...
}];
但事实证明,当我显示一个视图控制器然后关闭它时 - 动画似乎已冻结。
我对此进行了研究,发现当应用进入后台时动画会停止。但这里是一个显示在顶部的视图控制器。这会是同样的情况吗?
我发现解决方案是在应用程序退出到后台之前停止动画,如 Apple 这篇文章所示:https://developer.apple.com/library/archive/qa/qa1673/_index.html
我已经尝试过该解决方案,但对我没有用。显示视图控制器后,将调用动画的完成块。
如何解决这种动画卡顿的情况?
要在呈现另一个视图后重新启动动画,请将其放入viewWillAppear
如果您的动画在一段时间后或有条件地开始,只需添加一个 Bool,例如 animationHasStarted
,在 viewWillAppear
中检查它,看看您是否应该 运行 动画