задержка получения полного логического обратного вызова анимации блока UIView (animateWithDuration) - PullRequest
1 голос
/ 01 января 2012

Я делаю блочную анимацию, мой проект использует opengl для геймплея и uiview для меню, как вещи.

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

Ниже мой код:

-(void) playAnimation:(UIButton *)_button atPosition:(CGRect)_rect withDuration:(CGFloat)_duration andDelay:(CGFloat)_delay andDiection:(NSInteger)_direction
{
    [UIView animateWithDuration:_duration
                          delay:_delay
                        options:UIViewAnimationCurveLinear     
                     animations:^{ 
                         _button.frame = _rect;
                     }
                     completion:^(BOOL finished){
                         [UIView animateWithDuration:0.1
                                               delay:0.0
                                             options:UIViewAnimationCurveEaseInOut     
                                          animations:^{ 
                                              CGRect rect = _rect;

                                              rect.origin.x = _rect.origin.x + (10 * _direction); 
                                              _button.frame = rect;
                                          }
                                          completion:^(BOOL finished){
                                              [UIView animateWithDuration:0.1
                                                                    delay:0.0
                                                                  options:UIViewAnimationCurveEaseInOut     
                                                               animations:^{ 
                                                                   _button.frame = _rect;
                                                               }
                                                               completion:^(BOOL finished){

                                                               }];

                                          }];
                     }];
}
...