【发布时间】:2015-01-30 01:20:59
【问题描述】:
在我的游戏中,我有暂停和取消暂停包含游戏元素的SKNode 的功能。目前,系统会在按下 home 键时自动暂停,并在应用再次激活时取消暂停。
我想按照我自己的方式来做这件事。例如,当应用再次激活时,它应该显示暂停菜单,并保持暂停状态,直到用户手动取消暂停。
有没有办法覆盖这个系统行为?
【问题讨论】:
标签: ios swift sprite-kit sknode
在我的游戏中,我有暂停和取消暂停包含游戏元素的SKNode 的功能。目前,系统会在按下 home 键时自动暂停,并在应用再次激活时取消暂停。
我想按照我自己的方式来做这件事。例如,当应用再次激活时,它应该显示暂停菜单,并保持暂停状态,直到用户手动取消暂停。
有没有办法覆盖这个系统行为?
【问题讨论】:
标签: ios swift sprite-kit sknode
您可以注册接收 UIApplicationDidEnterBackgroundNotification 或 UIApplicationWillEnterForegroundNotification 通知,并在通知选择器中触发暂停菜单。
【讨论】:
您必须在代码中的某处注册通知。有很多通知可供选择。这是应用程序从后台返回时的一个:
override func viewDidLoad() {
super.viewDidLoad()
NSNotificationCenter.defaultCenter().addObserver(self, selector: "didBecomeActive:", name: UIApplicationDidBecomeActiveNotification, object: nil)
}
func didBecomeActive(test: NSNotification) {
self.unpause()
}
请注意,addObserver 方法中的选择器是应用程序从后台返回时将调用的函数的名称。此外,didBecomeActive 方法需要NSNotification 类型的参数。
【讨论】:
pause,但这不是一个好的解决方案。)