2012-06-19 69 views
0

我在我的MainViewController中有以下一段代碼。這是最好的地方嗎?我有幾個其他方法具有類似的行爲。這種類型的代碼是否屬於單獨的類,僅用於UI轉換和操作?放置處理UI轉換和操作的代碼的最佳位置在哪裏?

-(void)slideView3P{ 
    [self.view bringSubviewToFront:_view3P]; 
    if (view3PIsMinimized){ 
     view3PIsMinimized = NO; 
     [UIView beginAnimations:@"animationOff" context:NULL]; 
     [UIView setAnimationDuration:0.5f]; 
     [_view3P setFrame:CGRectMake(_view3P.frame.origin.x, 7, _view3P.frame.size.width, 446)]; 
     [UIView commitAnimations];  
    } 
    else { 
     view3PIsMinimized = YES; 
     [UIView beginAnimations:@"animationOff" context:NULL]; 
     [UIView setAnimationDuration:0.5f]; 
     [_view3P setFrame:CGRectMake(_view3P.frame.origin.x, 57, _view3P.frame.size.width, 46)]; 
     [UIView commitAnimations]; 
    } 
} 

回答

2

給我,我會創建一個名爲輔助模型和創建動畫類方法,如如下:

+ (void)slideHoriWithPixel:(CGFloat) _pixel ForView:(UIView *) _view; 

+ (void)slideVertWithPixel:(CGFloat) _pixel ForView:(UIView *) _view; 

+ (void)popOutAnimationForView:(UIView *) _view; 

會有一些簡單的和複雜的動畫。

的好處是:

  • 你永遠不會知道什麼時候你會重用這些動畫。
  • 即使你做了另一個項目,你也可以簡單地將這個幫助者模型導回到新項目中
  • 當你完成了一個servval項目後,這個模型最終可能會變成你自己的動畫庫。
+0

你剛剛做了一個從NSObject子類的類嗎? – AaronG

+0

子類NSObject – TedCheng

1

在我的應用程序中,我通常把我的轉換放在視圖控制器中,就像你現在正在做的那樣。但是,如果要重新使用轉換,可以將它們放在單獨的類中,並將其導入到您希望轉換的各種視圖控制器中。請注意:我不會使用beginAnimations:context:commitAnimations,因爲Apple不會推薦它們。從UIView Class Reference:

動畫瀏覽

使用本節中的方法的iOS 4和更高版本不鼓勵採取。改爲使用基於塊的動畫方法。

+ beginAnimations:上下文:

+ commitAnimations

+ setAnimationStartDate:

+ setAnimationsEnabled:

+ setAnimationDelegate:

+ setAnimationWillStartSelector:

+ setAnimationDidStopSelector:

+ setAnimationDuration:

+ setAnimationDelay:

等等

希望這有助於!

相關問題