UIView链块动画,延迟不能正常工作

时间:2011-10-04 20:04:32

标签: iphone ios ipad animation core-animation

更新(我重新编写了我的函数,因此所有的动画都不像以前那样嵌套。仍然没有运气)

我有一段代码,按此顺序尝试:

  1. 隐藏视图A
  2. 显示视图B
  3. 显示视图C
  4. 订单很重要!

    代码如下:

    主要功能:

            [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 show function:

        [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 show function:

        [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 :(得分:0)

我想是因为外部动画块没有任何动画 - 因为hide和show会创建内部动画块 - 所以它会立即调用完成块。

删除hideshow中的嵌套动画块,或添加一个禁用这些嵌套动画动作动画的参数。