2012-11-26 45 views
4

我正在嘗試創建一個像UIView動畫塊的自定義塊。基本上我希望能夠傳遞一個方法或任何數量的指令,並提供一個完成處理程序。我的問題是如何指定塊定義的參數部分?iOS塊 - 定義UIView動畫塊

+0

參見[塊編程Topcis(https://開頭開發商。 apple.com/library/ios/#documentation/Cocoa/Conceptual/Blocks/Articles/00_Introduction.html#//apple_ref/doc/uid/TP40007502-CH1-SW1)。 – rmaddy

回答

4

你可以有一個方法聲明,如:

- (void) performAnimationWithCompletion:(void (^)(BOOL finished))completion { 

[UIView animateWithDuration:0.5 animations:^{ 
      // your own animation code 
      // ... 
      } completion:^(BOOL finished) { 
       // your own completion code 

       // if completion block defined, call it 
       if(completion){ 
        completion(YES); 
       } 
      }]; 

} 

然後,你可以把它叫做:

[instance performAnimationWithCompletion:^(BOOL complete){ 
     // define block code to be executed on completion 
}]; 
2
[UIView animateWithDuration:0.3 
          delay:0 
         options:UIViewAnimationOptionCurveEaseIn 
        animations:^{ 
         // other animations here 

        } 
        completion:^(BOOL finished){ 
         // ... completion stuff 
        } 
    ]; 
+0

是的,但我該如何複製動畫:聲明中的^部分? –

+0

你試過....看這個函數的聲明嗎? – borrrden