2011-10-04 55 views
1

UPDATE(我重做我的功能,使所有的動畫不會像以前一樣嵌套仍然沒有運氣。)的UIView鏈塊動畫,延遲不正常

我有一塊的代碼,其中一個嘗試,在該順序:

  1. 隱藏視圖甲
  2. 放映視圖乙
  3. 顯示視圖C

訂單很重要!

的代碼如下:

主要功能:

 [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隱藏)!

前兩個動畫(fileMenuController隱藏drawingToolController顯示)是否工作正常。當fileMenuController隱藏完成時,drawingToolController啓動。

那麼,有人知道爲什麼penSizeController showSubView塊中的部件與第一個動畫同時啓動?

+0

所以你想在其他兩個完成後顯示視圖c?它會立即開始,因爲您在該動畫上沒有任何延遲。將延遲設置爲0.4,它將在另外兩個之後開始。 –

+0

@JasonHarwig這已經在那裏解決:http://stackoverflow.com/questions/7655774/how-to-use-animationwithduration-and-transitionwithview-altogether – peterphonic

回答

0

我想象這是因爲外部動畫塊沒有任何動畫 - 因爲隱藏和顯示創建了內部動畫塊 - 所以它立即調用完成塊。

要麼刪除hideshow中的嵌套動畫塊,要麼爲這些嵌套的動畫操作添加一個禁用動畫的參數。

+0

我不確定完全明白你在說什麼,但我redid我的功能,所有的動畫不會像以前一樣嵌套。仍然沒有運氣。你可以回到我的帖子查看更新的代碼 – peterphonic