Ios 如何计算背景中的时间并使SKAction跳到后面的时间

Ios 如何计算背景中的时间并使SKAction跳到后面的时间,ios,sprite-kit,skaction,Ios,Sprite Kit,Skaction,我正在开发一个基于sprite工具包的应用程序。我知道当应用程序处于后台时,所有操作都将暂停。然而,我正在做淡入淡出的颜色的事情,所以我想计算应用程序在背景中的时间,并使淡入淡出的动作在之后跳转一段时间,这样当应用程序在背景中时,颜色看起来就不会改变。那么,有人能给我一些关于如何做到这一点的详细演练吗?非常感谢 根据rmaddy的建议编辑。 在应用程序处于活动状态时打开的视图控制器中,您可以直接订阅UIApplicationIDBecMeactiveNotification和UIApplicat

我正在开发一个基于sprite工具包的应用程序。我知道当应用程序处于后台时,所有操作都将暂停。然而,我正在做淡入淡出的颜色的事情,所以我想计算应用程序在背景中的时间,并使淡入淡出的动作在之后跳转一段时间,这样当应用程序在背景中时,颜色看起来就不会改变。那么,有人能给我一些关于如何做到这一点的详细演练吗?非常感谢

根据rmaddy的建议编辑。 在应用程序处于活动状态时打开的视图控制器中,您可以直接订阅UIApplicationIDBecMeactiveNotification和UIApplicationWillResignActiveNotification,以便在应用程序进入或退出前台时获得通知

 @property(nonatomic) NSDate *enterBackground;
 @property (nonatomic) NSTimeInterval enterForeground;

 -(void)viewDidLoad{
         [super viewDidLoad];
         [self subscribeToNotifications];
     }
 -(void)viewWillDisappear:(BOOL)animated{
         [self unsubscribeFromNotifications];
     }
 -(void)subscribeToNotifications{

         [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appEntersBackground) name:UIApplicationWillResignActiveNotification object:nil];
         [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appEntersForeground) name:UIApplicationWillEnterForegroundNotification object:nil];
    }

 -(void)unsubscribeFromNotifications{

        [[NSNotificationCenter defaultCenter]removeObserver:self name:UIApplicationWillEnterForegroundNotification object:nil];
        [[NSNotificationCenter defaultCenter]removeObserver:self name:UIApplicationWillResignActiveNotification object:nil];
    }
既然您的ViewController知道应用程序何时进入和退出前台,请添加启动和停止计时器的方法

-(void)appEntersBackground{
   self. enterBackground = [NSDate date];
}
-(void)appEntersForeground{
    self.enterForeground = [[NSDate date]timeIntervalSinceDate:self.enterBackground];
    NSLog(@"%f",self.enterForeground);
}

在后台花费的时间可以通过self访问。enterForeground

为什么要为此定义自己的通知?摆脱应用程序中的代码委托方法,只需在视图控制器中订阅标准的UIApplicationIDbecMeactiveNotification和UIApplicationWillResignActiveNotification通知。顺便说一句-这些是要使用的常量,而不是字符串文字。@rmaddy非常好的观点,不知道为什么我把它复杂了那么多!非常感谢!!我在后台计算了时间。但我对如何在应用程序激活后跳转状态有疑问。我正在做一个关于褪色的动作。你能给我一些建议吗?@zhu Vincent我不知道你说的是什么情况。你能说得更具体一点吗?你知道如何使用SKAction使SKShapeNode的填充色褪色吗?我的情况就是这样。所以,在应用程序进入前台后,我有点不知所措。我想知道在那之后如何跳转到这个状态。如果这只是一个视觉效果,那么从背景返回时只需设置一个随机颜色——没有人会注意到;