swift - 如何在后台继续动画和uitimer

标签 swift animation uiview timer background

我有一个类似秒表的应用程序。当我按下开始按钮时,计时器()被触发以开始每秒计数,并且我有一个 uiView 通过 uiview.animation 旋转 360 度并继续旋转,直到我按下停止按钮。

但是,当我最小化我的应用程序时,我的 uiview 动画停止了。计时器()在后台停止计时,但在应用程序重新启动后继续计时。但 uiview 甚至不继续旋转,实际上完全停止了。

无论如何,我需要一切顺利运行,即使它在后台。哎呀,即使屏幕关闭/锁定。它是一个秒表,所以你可以猜测为什么。

请帮忙!!谢谢!

仅限 Swift

最佳答案

通过将开始时间和持续时间写入 UserDefaults 或其他持久存储来捕获并保存它(不要忘记在计时器完成时将其删除)。

注册通知 NSNotification.Name.UIApplicationWillEnterForeground 。当您收到此通知时,请将当前时间与开始时间 + 持续时间进行比较。如果超过了结束时间,则会显示一些相关消息。否则,根据剩余时间重新创建计时器并重新启动微调器动画。

关于swift - 如何在后台继续动画和uitimer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43670054/

相关文章:

ios - 带有 TextField 和 Button 的 UIView 内的 UIView 不工作

ios - 如何防止 UITableViewCell 中的手势干扰 UITableView 的滚动?

ios - 从上到下依次将不同高度的自定义UIView添加到UITableViewcell中

swift - 3 个不同的按钮和 1 个按钮中的操作

javascript/jquery .animate() 色调旋转

ios - 无法调用非函数类型的值 'Any?!' :- Firebase, Swift3

IE9 的 CSS3 动画

iPhone SDK : I have memory issues, 任何人都可以帮助新手修复它们吗?

ios - 无法将类型 'UIColor' 的值分配给类型 'String?'

swift - 当两个物体接触/碰撞时试图打印一些东西。稍后会在球触及桶底时增加得分