gpt4 book ai didi

ios - 如何在 applicationDidEnterBackground 中停止 UIDynamicAnimator

转载 作者:行者123 更新时间:2023-11-29 02:43:08 26 4
gpt4 key购买 nike

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

在我的游戏viewcontroller.m

 -(void)stoptime
{
[_animator removeAllBehaviors]; //_animator is my UIDynamicAnimator
[time invalidate];
}

在我的app delegate.m

- (void)applicationDidEnterBackground:(UIApplication *)application
{
gameViewController *new=[[gameViewController alloc]initWithNibName:@"gameViewController" bundle:nil];
[new stoptime];
}

最佳答案

使用NSNotificationCenter。在您的 View Controller 中,监听通知(在 viewDidLoad 中):

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(stoptime) name:@"StopTimeNotification" object:nil];

然后,在您的 applicationDidEnterBackground:

- (void)applicationDidEnterBackground:(UIApplication *)application
{
[[NSNotificationCenter defaultCenter] postNotificationName:@"StopTimeNotification" object:nil];
}

最后,在您的 stoptime 方法中:

-(void)stoptime {

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

当你的 View Controller 即将被释放时,一定要调用下面的方法:

[[NSNotificationCenter defaultCenter] removeObserver:self];

另外两条评论:

1 - 使计时器无效时,最好也将其设置为 nil,以便稍后重用它

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

编辑

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

关于ios - 如何在 applicationDidEnterBackground 中停止 UIDynamicAnimator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25498065/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com