【问题标题】:Restart UIView repeat animation重启 UIView 重复动画
【发布时间】:2018-12-06 22:31:39
【问题描述】:

我在 iOS 中设置了一个重复动画:

[UIView animateKeyframesWithDuration:duration 
                               delay:0.0 
                             options:UIViewKeyframeAnimationOptionRepeat 
                          animations:^{
    ...
}];

但事实证明,当我展示一个视图控制器并随后将其关闭时 - 动画似乎已冻结。

我对此进行了研究,发现当应用程序进入后台时动画会停止。但这里它是一个显示在顶部的视图控制器。会不会是同样的情况?

我发现解决方案是在应用退出到后台之前停止动画,如Apple的这篇文章所示:https://developer.apple.com/library/archive/qa/qa1673/_index.html

我已尝试过该解决方案,但对我没有用。一旦显示视图控制器,就会调用动画的完成块。

我该如何解决这种动画冻结的情况?

【问题讨论】:

  • 试着把你的动画代码放在viewWillAppear
  • @Tj3n 你知道什么!有效。但是我的动画只是在生命周期的后期才添加的。我能做什么?

标签: ios uiview core-animation


【解决方案1】:

要在呈现另一个视图后重新启动动画,请将其放入viewWillAppear

如果您的动画在一段时间后或有条件开始,只需添加一个像 animationHasStarted 这样的 Bool,在 viewWillAppear 中检查它,看看您是否应该运行动画

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 2019-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多