Как я могу перезапустить свой блок- на основе анимации, когда приложение выходит на передний план?

У меня есть следующий блок- анимация на основе:

[UIView animateWithDuration:0.5f delay:0.0f 
                    options:UIViewAnimationOptionRepeat|UIViewAnimationOptionAutoreverse|UIViewAnimationOptionAllowUserInteraction|UIViewAnimationOptionCurveEaseInOut
                    animations:^{
                [view.layer setTransform:CATransform3DMakeScale(1.3f, 1.3f, 1.0f)];
                NSLog(@"animating");
                    }completion:^(BOOL finished){
                        NSLog(@"Completed");
                    }];

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

- (void)applicationWillEnterForeground:(UIApplication *)application
{
    /*
     Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background.
     */
    [[self viewController] animate];
    ......
}

, но это не помогло восстановить анимацию.

Точно так же я пробовал подходы, изложенные в ответах на эти вопросы:

но ни одно из предложений не сработало для меня. Есть ли другой способ возобновить блочную анимацию UIView, когда приложение вернулось из фона?

6
задан Cœur 23 November 2017 в 01:02
поделиться