首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在UIDynamicAnimator中阻止applicationDidEnterBackground

如何在UIDynamicAnimator中阻止applicationDidEnterBackground
EN

Stack Overflow用户
提问于 2014-08-26 04:28:57
回答 1查看 862关注 0票数 0

当调用UIDynamicAnimator时,如何停止applicationDidEnterBackground?另外,如何在applicationWillEnterForeground中启动计时器?下面是我的代码:

在我的游戏浏览器.m

代码语言:javascript
复制
 -(void)stoptime
{
     [_animator removeAllBehaviors]; //_animator is my UIDynamicAnimator
      [time invalidate];
}

在我的应用程序中委托.m

代码语言:javascript
复制
- (void)applicationDidEnterBackground:(UIApplication *)application
{
       gameViewController *new=[[gameViewController   alloc]initWithNibName:@"gameViewController" bundle:nil];
    [new stoptime];
}
EN

回答 1

Stack Overflow用户

发布于 2014-08-26 04:36:21

使用NSNotificationCenter。在视图控制器中,侦听通知(在viewDidLoad中):

代码语言:javascript
复制
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(stoptime) name:@"StopTimeNotification" object:nil];

然后,在你的applicationDidEnterBackground:

代码语言:javascript
复制
- (void)applicationDidEnterBackground:(UIApplication *)application
{
    [[NSNotificationCenter defaultCenter] postNotificationName:@"StopTimeNotification" object:nil];
}

最后,在stoptime方法中:

代码语言:javascript
复制
-(void)stoptime {

    [_animator removeAllBehaviors]; //_animator is my UIDynamicAnimator
    [time invalidate];
    time = nil;
}

当您的视图控制器即将被释放时,一定要调用以下内容:

代码语言:javascript
复制
[[NSNotificationCenter defaultCenter] removeObserver:self];

另外两项评论:

当使计时器失效时,最好也将它设置为nil,以便以后可以重用它

2-不要使用new作为任何变量的名称,它是一个保留关键字。

编辑

您可以使用类似的方法重新启动您的计时器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25498065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档