Как возобновить CAAnimation после выхода из многозадачности

в моем приложении есть массив CALayer, который я анимировал по bezierPath. Когда я закрываю и снова открываю приложение, мои слои не анимируются и не находятся в том же положении, что и до закрытия приложения. Я реализовал два метода, pauseLayer и resumeLayer, которые работают, когда я запускаю их двумя кнопками внутри моего приложения, но они не будут работать после закрытия приложения. Код выглядит следующим образом

   - (void)pauseLayers{

    for(int y=0; y<=end;y++)
    {



        CFTimeInterval pausedTime = [car[y] convertTime:CACurrentMediaTime() fromLayer:nil];
        car[y].speed = 0.0;
        car[y].timeOffset = pausedTime;

         standardUserDefaults[y] = [NSUserDefaults standardUserDefaults];


        if (standardUserDefaults[y]) {
            [standardUserDefaults[y] setDouble:pausedTime forKey:@"pausedTime"];
            [standardUserDefaults[y] synchronize];
        }


        NSLog(@"saving positions");


        }


}

-(void)resumeLayers

{  




    for(int y=0; y<=end;y++)
    {




        standardUserDefaults[y] = [NSUserDefaults standardUserDefaults];     
        car[y].timeOffset = [standardUserDefaults[y] doubleForKey:@"pausedTime"];

    CFTimeInterval pausedTime = [car[y] timeOffset];
    car[y].speed = 1.0;
    car[y].timeOffset = 0.0;
    car[y].beginTime = 0.0;

    CFTimeInterval timeSincePause = [car[y] convertTime:CACurrentMediaTime() fromLayer:nil] - pausedTime;
    car[y].beginTime = timeSincePause;
        }


}
5
задан Daniele Nazzari 22 July 2011 в 15:59
поделиться