2014-10-08 99 views
-2

我創建了一個叫UIView myView。首先,將其移動到左側。然後將其移至右側。我用了兩個[UIView animatedWithDuration:delay:animations:^completed:^]。但它沒有奏效。爲一個UIView,做兩個動畫,一個接一個地

我問一個資深工程師,他給了我這個解決方案。

[UIView animatedWithDuration: 
        animations: 
          //first animation 
        completed: 
          dispatch_after(.....){ 
           //second animation 
          } 
] 

通過使用dispatch_after(),可以順序執行兩個動畫。

回答

4

試試這個:

[UIView animateWithDuration:0.3f animations:^{ 
    self.theView.frame = CGRectMake(10, 10, 100, 100); 
} completion:^(BOOL finished) { 
    [UIView animateWithDuration:0.3f animations:^{ 
     self.theView.frame = CGRectMake(200, 10, 100, 100); 
    } completion:nil]; 
}]; 
+0

工程。謝謝。但是,如果邏輯非常複雜,代碼將高度嵌套。有沒有更好的方法來解決這個問題? – Gonghan 2014-10-08 07:41:56

+0

什麼是複雜邏輯?你能描述更多嗎? – gabbler 2014-10-08 07:44:13

+0

這就是我想要鏈接兩個動畫時的操作,它的作用就像一個魅力。 :) – 2014-10-09 07:24:10