停止游戏的应用程序,如果主页button点击iOS

我不知道苹果的规则是否有必要实现,当用户在游戏中,如果他们点击主页button,游戏暂停,当他们回到游戏中时,游戏将取消暂停。

我是否必须点击故事板上的某个主页button才能出现? 我不知道。

由于故事板上没有主页button,因此当用户单击主页button退出应用程序时,如何编码,游戏会暂停。 当他们再次返回时,游戏将取消暂停。

有两种方式来实现它:

1:使用NSNotificationCenter

 - (void)setupBackgroundNotification { // the same to applicationWillEnterForeground: [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(open) name: UIApplicationWillEnterForegroundNotification object:nil]; //// the same to applicationWillResignActive [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(close) name: UIApplicationWillResignActiveNotification object:nil]; } - (void)open { NSLog(@"the same to applicationWillEnterForeground"); } - (void)close { NSLog(@"the same to applicationWillResignActive"); } - (void)dealloc { [[NSNotificationCenter defaultCenter] removeObserver:self name:applicationWillEnterForeground object:Nil]; [[NSNotificationCenter defaultCenter] removeObserver:self name:applicationWillResignActive object:Nil]; } 

2:使用UIApplicationDelegate委托方法

 - (void)applicationWillResignActive:(UIApplication *)application { // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. } - (void)applicationWillEnterForeground:(UIApplication *)application { // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. } 

如果主页button被点击,你的App Delegate的方法applicationDidEnterBackground:被调用。 因此,您可以根据需要作出回应。

但是,您可能不需要在这里做任何特别的事情,因为当您的应用进入后台时,它将被暂停 – 它将停止运行。 因此,从某种意义上说,它会自动暂停。 定时器暂停,例如。 (请注意,这个function,定时器的自动暂停,在iOS 8模拟器中被打破,但它在设备上正常工作。)

如果你正在做一个简单的游戏,你不必执行任何东西来暂停。 内存pipe理机制会照顾它。

但是,如果您正在制作需要某些function的游戏,则需要处理与您的任务相关的操作。 例如,请检查苹果的UIApplicationDelegate参考页面。 查看“pipe理状态转换”一节以获得更好的理解。

在iOS模拟器中,您可以使用CMD + SHIFT + H快捷键“按下主页button”。

你可以在你的UIApplicationDelegate实现中覆盖下面的方法:

applicationWillResignActive:(离开前台状态时调用)
applicationWillEnterForeground :(在转换出背景状态时调用)

或者你可以使用NSNotificationCenter和equivilent通知:

UIApplicationWillEnterForegroundNotification
UIApplicationWillResignActiveNotification

当iOS将您的应用程序置于后台时,它基本上处于暂停状态,因为它不再运行(除了音乐播放器,GPS消费者等的一些例外)。 但是你的渲染循环没有做任何事情。 但是,在这种状态下,你的应用程序可能会被杀,所以你可能想做一些簿记来保持你的应用程序状态一致。 暂停你的应用程序,保存用户进度等,然后恢复/重新启动,并加载该信息,当你回来。