CABasicAnimation останавливается при перезапуске приложения - PullRequest
4 голосов
/ 04 октября 2010

Я столкнулся с проблемой, когда перезапуск моего приложения для iPhone вызывает остановку анимации. В частности, у меня установлена ​​и запущена следующая анимация:

CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"path"];
animation.duration = 1.0;
animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
animation.repeatCount = 1e100f; // Infinite
animation.autoreverses = YES;
animation.fromValue = animationStartPath;
animation.toValue = animationFinishPath;
[view.layer addAnimation:animation forKey:@"animatePath"];

Когда я нажимаю клавишу возврата (iOS 4 продолжает работать в фоновом режиме), а затем перезапускаю программу, анимация останавливается. Есть ли способ предотвратить это или легко перезапустить их?

1 Ответ

1 голос
/ 04 октября 2010

В вашем делегате приложения есть два метода, с помощью которых вы можете передать информацию контроллеру представления, который выполняет анимацию.

- (void)applicationWillResignActive:(UIApplication *)application
{
  // Make note of whether or not the animation is running.
  // Using NSUserDefaults is probably the simplest
}

- (void)applicationDidBecomeActive:(UIApplication *)application
{
  // Check your user default setting to see if the animation
  // was running when the app resigned active and then restart it
}

Конечно, это означает, что вам понадобится ссылка на контроллер представления, который выполняет анимацию в делегате приложения, или вы можете использовать уведомления для передачи уведомления. Как бы то ни было, суть в том, что вам придется следить за тем, чтобы приложение снова стало активным, и перезапустить анимацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...