在情节提要之间暂停和恢复 CADisplayLink

Posted

技术标签:

【中文标题】在情节提要之间暂停和恢复 CADisplayLink【英文标题】:Pause and resume CADisplayLink between storyboards 【发布时间】:2013-09-29 13:11:17 【问题描述】:

我为我的游戏循环设置了一个 CADisplayLink 来处理动画循环。

当游戏结束时,我会展示另一个带有游戏结果的故事板。 在该故事板上,用户可以选择再试一次。如果是这样,我选择再次展示游戏情节提要。

如何以正确的方式暂停和恢复 CADisplayLink? 还是应该在游戏重新开始时销毁 CADisplayLink 并创建一个新的?

【问题讨论】:

【参考方案1】:

如何设置一个isRunning 属性,如果设置为NO 应该强制CADisplayLink 的处理程序方法立即返回(不调用使动画和游戏运行的代码)。

-(void) tick:(CADisplayLink*)

    if (!self.isRunning) return;


【讨论】:

谢谢。内存消耗呢?这个可以吗?如果游戏在后台运行,这样可以吗? 我在游戏结束后通过调用移除游戏循环时解决了这个问题:[updater removeFromRunLoop:[NSRunLoop currentRunLoop] forMode: NSRunLoopCommonModes];

以上是关于在情节提要之间暂停和恢复 CADisplayLink的主要内容,如果未能解决你的问题,请参考以下文章

没有情节提要的 UIViewController 状态恢复不起作用

在代码中更改大小分类约束的常量,但它会恢复为情节提要值

如何在主视图和详细视图之间分隔*没有*情节提要?

在没有任何情节提要参考的情况下在控制器之间传递数据

iOS:如何在情节提要中在横向和纵向视图之间切换?

如何在情节提要中的 2 个视图控制器之间传递数据?