【问题标题】:Restarting animations ios swift重启动画ios swift
【发布时间】:2018-10-28 17:32:23
【问题描述】:

i 后动画停止工作

  1. 转移到另一个视图控制器并返回
  2. 应用程序进入后台,然后返回前台

我正在使用这段代码(in viewwillappear)来实现闪烁动画

    UIView.animate(withDuration: 1.0, delay: 0.4, options:[ UIViewAnimationOptions.curveEaseOut , .repeat], animations: {

        self.logoLabel1.alpha = 0.0
        self.logoLabel2.alpha = 0.0

    }, completion: nil)

谁能帮帮我? 谢谢。

【问题讨论】:

  • 试试 viewDidApper

标签: ios swift animation


【解决方案1】:

是的,这是预期的行为。当视图消失时,动画将停止,方法是最小化应用程序或显示另一个视图控制器。将您的动画代码移动到 viewDidAppear,当您移动到任何其他视图控制器并返回时,动画不会停止。对于当应用程序进入后台时动画停止的情况,请使用以下代码:

在你的 viewDidAppear 中,

NotificationCenter.default.addObserver(self, selector: #selector(willEnterForeground), name: .UIApplicationWillEnterForeground, object: nil)

在你看来WillDisappear,

NotificationCenter.default.removeObserver(self, name: .UIApplicationWillEnterForeground, object: nil)

并在您的视图控制器中编写此函数,

@objc func willEnterForeground() {
    // your animations
    UIView.animate(withDuration: 1.0, delay: 0.4, options:[ UIViewAnimationOptions.curveEaseOut , .repeat], animations: {

        self.logoLabel1.alpha = 0.0
        self.logoLabel2.alpha = 0.0

    }, completion: nil)
}

【讨论】:

  • 它不工作:(我想一定有一个潜在的问题?
  • 我为动画安装了 Spring Pod,现在一切正常。我不知道为什么观察者不使用 UIView.animate 方法。谢谢你的回答。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-06
  • 1970-01-01
  • 2013-04-08
  • 2020-08-02
  • 1970-01-01
  • 2023-03-14
相关资源
最近更新 更多