我有一个类似秒表的应用程序。当我按下开始按钮时,计时器()被触发以开始每秒计数,并且我有一个 uiView 通过 uiview.animation 旋转 360 度并继续旋转,直到我按下停止按钮。
但是,当我最小化我的应用程序时,我的 uiview 动画停止了。计时器()在后台停止计时,但在应用程序重新启动后继续计时。但 uiview 甚至不继续旋转,实际上完全停止了。
无论如何,我需要一切顺利运行,即使它在后台。哎呀,即使屏幕关闭/锁定。它是一个秒表,所以你可以猜测为什么。
请帮忙!!谢谢!
仅限 Swift
最佳答案
通过将开始时间和持续时间写入 UserDefaults 或其他持久存储来捕获并保存它(不要忘记在计时器完成时将其删除)。
注册通知 NSNotification.Name.UIApplicationWillEnterForeground 。当您收到此通知时,请将当前时间与开始时间 + 持续时间进行比较。如果超过了结束时间,则会显示一些相关消息。否则,根据剩余时间重新创建计时器并重新启动微调器动画。
关于swift - 如何在后台继续动画和uitimer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43670054/