UIView цепочка анимации блоков, задержка не работает должным образом - PullRequest
1 голос
/ 05 октября 2011

ОБНОВЛЕНИЕ : (я переделал свои функции, чтобы все анимации не были такими же вложенными, как раньше. Все еще не повезло)

У меня есть кусоккод, в котором попытаться, в следующем порядке:

  1. Скрыть представление A
  2. Показать представление B
  3. Показать представление C

Theпорядок важен!

Код следующий:

Основная функция:

        [fileMenuController hide:0.2 andDelay:0.1]; 
        [drawingToolController show:0.2 andDelay:0.2];
        [penSizeMenuController showSubViewWithDuration:0.4];

fileMenuController скрыть функцию:

     [UIView animateWithDuration:duration //begin animation
                          delay:delay 
                        options:UIViewAnimationCurveEaseIn 
                     animations:^{
                         [self.view setFrame:CGRectOffset([self.view frame], 0, -self.view.frame.size.height)];             
                     } 
                     completion:nil
     ];

функция показа DrawingToolController:

    [UIView animateWithDuration:duration //begin animation
                          delay:delay
                        options:UIViewAnimationCurveEaseIn 
                     animations:^{
                         [self.view setFrame:CGRectOffset([self.view frame], 0, self.view.frame.size.height)];             
                     } 
                     completion:nil
     ];

функция показа penSizeController:

    [UIView transitionWithView:self.view 
                  duration:duration
                   options:UIViewAnimationOptionTransitionCurlDown
                animations:^{ [self.view addSubview:subView] ;}
                completion:nil];
self.view.alpha = 1;

Моя проблемаблок penSizeController showSubView начинается с первой анимации ( fileMenuController hide )!

Первые две анимации ( fileMenuController hide и DrawingToolController show ) работают правильно.Когда скрытие fileMenuController выполнено, запускается DrawingToolController.

Итак, кто-нибудь знает, почему часть в блоке penSizeController showSubView запускается одновременно с первой анимацией?

1 Ответ

0 голосов
/ 05 октября 2011

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

Либо удалите вложенный блок анимации в hide и show, либо добавьте параметр, который отключает анимацию для этих вложенных анимационных действий.

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