我正在做块动画,我的项目是使用opengl进行游戏,uiview使用菜单之类的东西 .

我正在使用animateWithDuration方法制作uiview动画,bt在获得延迟完成动画布尔回调时面临问题 . 我在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){

                                                               }];

                                          }];
                     }];
}