Сложность объединения двух анимаций UIView - PullRequest
1 голос
/ 10 ноября 2011

Вот что я пытаюсь сделать.

UILabel появится на экране со 100% альфа и переместится на 80 пунктов, используя анимацию UIView.Как только эта анимация закончится, я хочу, чтобы она продолжала на 80 пунктов выше, а затем исчезла до альфа 0. Я хочу, чтобы эти две анимации отображались как одна бесшовная анимация.

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

Может кто-нибудь сказать мне лучший способ сделать то, что я пытаюсь сделать?

Спасибо!

[UIView animateWithDuration:1.2 delay:0 options:UIViewAnimationCurveLinear animations:^{   
    myLabel.center = endPoint;

}
completion:^(BOOL finished) {
    [UIView animateWithDuration:1.2 delay:0 options:UIViewAnimationCurveLinear animations:^{                
         myLabel.center = endPoint2;
         myLabel.alpha = 0;
        }
        completion:^(BOOL finished) {
             NSLog(@"animations complete");
     }];
 }];

1 Ответ

0 голосов
/ 10 ноября 2011

Это должно работать. Я не вижу причин, почему нет. Просто небольшое дополнение, проверьте завершение анимации в блоке finished. Как это позаботится о любых ошибках во время анимации. Также, если вы планируете сделать это UILabel накладным, вам нужно сделать это, установив флаг UIViewAnimationOptionAllowUserInteraction.

   [UIView animateWithDuration:1.2 delay:0 options:UIViewAnimationCurveLinear | UIViewAnimationOptionAllowUserInteraction animations:^{   
        myLabel.center = endPoint;
        myLabel.alpha = 1;
    }
    completion:^(BOOL finished) {
        if(finished){
        [UIView animateWithDuration:1.2 delay:0 options:UIViewAnimationCurveLinear | UIViewAnimationOptionAllowUserInteraction animations:^{                
             myLabel.center = endPoint2;
             myLabel.alpha = 0;
            }
            completion:^(BOOL finished) {
                 NSLog(@"animations complete");
         }];
        }
     }];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...