【问题标题】:run animation every time app is opened每次打开应用程序时运行动画
【发布时间】:2010-11-15 00:48:29
【问题描述】:

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

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

感谢您的帮助

【问题讨论】:

    标签: iphone objective-c animation


    【解决方案1】:

    在 iOS 4 中,按下主页按钮不会终止应用程序,而是将其挂起。当应用再次激活时,会发布UIApplicationDidBecomeActiveNotification。注册该通知并在您的处理程序中启动动画。

    编辑:在下面添加代码。

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

    - (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.
    }
    

    【讨论】:

    • 对我有用。感谢您的帮助和很好的解释。
    【解决方案2】:

    http://developer.apple.com/library/ios/#documentation/uikit/reference/UIApplicationDelegate_Protocol/Reference/Reference.html

    将动画放在类似的方法中

    applicationDidBecomeActive:
    

    UIApplicationDelegate

    【讨论】:

      【解决方案3】:

      您的应用很可能没有退出并重新加载。默认情况下,在 iOS 4 上,应用程序在用户“退出”应用程序时继续运行,并在用户“重新启动”时从中断处继续运行。

      查看您的应用委托中的 applicationDidBecomeActive。当应用停用时,您可以从那里开始您的动画。

      【讨论】:

        【解决方案4】:

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

        当应用进入前台或激活时将其设置为YESapplicationWillEnterForeground:applicationDidBecomeActive:

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

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

        【讨论】:

          猜你喜欢
          • 2020-07-05
          • 2013-05-28
          • 1970-01-01
          • 2014-11-28
          • 2021-10-13
          • 2011-11-28
          • 1970-01-01
          • 2023-02-11
          • 1970-01-01
          相关资源
          最近更新 更多