每次打开应用程序时运行动画

时间:2010-11-14 01:41:48

标签: iphone objective-c animation

我在viewDidLoad中有一个动画,它在第一次启动应用程序时运行。如果你退出应用程序,然后再次启动它,动画就不会播放。

我将如何在每次打开应用程序时播放动画,

感谢您的帮助

4 个答案:

答案 0 :(得分:11)

在iOS 4中,按主页按钮不会终止应用程序,它会暂停它。当应用再次处于活动状态时,会发布UIApplicationDidBecomeActiveNotification。注册该通知并在处理程序中启动动画。

修改:添加以下代码。

以下是一种方法:让您的视图控制器成为其UIApplicationDidBecomeActiveNotification方法中viewWillAppear:的观察者。

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(performAnimation:) name:UIApplicationDidBecomeActiveNotification object:nil];
}

取消注册视图控制器的viewDidDisappear:方法中的通知。

- (void)viewDidDisappear:(BOOL)animated {
    [super viewDidDisappear:animated];
    [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidBecomeActiveNotification object:nil];
}

最后,将动画代码放入注册接收通知时指定的选择器中。

- (void)performAnimation:(NSNotification *)aNotification {
    // Animation code.
}

答案 1 :(得分:2)

答案 2 :(得分:2)

您的应用很可能不会退出并重新加载。默认情况下,iOS 4应用会在用户“退出”应用时继续运行,并在“重新启动”时继续停止。

在app代理中查看applicationDidBecomeActive。当应用程序停用时,您可以从那里开始动画。

答案 3 :(得分:1)

如何在应用程序委托中设置标志来控制此行为:

当应用进入前台或变为有效时(YESapplicationWillEnterForeground:

,将其设置为applicationDidBecomeActive:

在视图控制器的NO中检查此标记是否为-viewWillAppear

MyAppDelegate *delegate = [[UIApplication sharedApplication] delegate];
if(!delegate.animationPlayed) {
   //perform animation here...
   delegate.animationPlayed = YES;
}