我有一个游戏,其标题屏幕具有动画背景。使用的动画只是一个CGMoveToPoint
来回移动图像的函数。
这在模拟器上完美运行,除了在真实设备上测试时按下主页按钮然后重新打开应用程序,此图像的动画不会移动。
我希望有一个简单的解决方法。我在考虑内存问题并使用该didReceiveMemoryWarning
功能,但我对此或何时使用它非常缺乏经验。
我的构建目标是 iOS 5.1。
我有一个游戏,其标题屏幕具有动画背景。使用的动画只是一个CGMoveToPoint
来回移动图像的函数。
这在模拟器上完美运行,除了在真实设备上测试时按下主页按钮然后重新打开应用程序,此图像的动画不会移动。
我希望有一个简单的解决方法。我在考虑内存问题并使用该didReceiveMemoryWarning
功能,但我对此或何时使用它非常缺乏经验。
我的构建目标是 iOS 5.1。
只需在viewWillAppear:
方法中添加动画代码而不是viewDidLoad:
方法..
如果您不希望您的应用程序在后台运行,那么将UIApplicationExitsOnSuspend
密钥(“应用程序不在后台运行”)添加到 plist 文件将起作用。文档
但是,如果您确实希望您的应用程序在后台运行,那么我建议使用NSNotificationCenter
. 文档
例如,将以下行添加到您的类的init
或viewDidLoad
方法中:
Objective-C
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationWillEnterForeground) name:UIApplicationWillEnterForegroundNotification object:nil];
迅速
NSNotificationCenter.defaultCenter().addObserver(self, selector: "applicationWillEnterForeground:", name: UIApplicationWillEnterForegroundNotification, object: nil)
然后将以下方法添加到您的类中:
Objective-C
- (void) applicationWillEnterForeground {
// add code here to restart animation
}
迅速
func applicationWillEnterForeground(notification: NSNotification) {
// add code here to restart animation
}
请注意,viewWillAppear
当应用程序在后台进入前台时,并不总是(如果有的话)被调用。所以我不会依赖使用它来重新启动动画。
将此添加到您的动画中
animation.removedOnCompletion = false;