2009-05-20 110 views
1

在Mac上,爲視圖的簡單交叉漸變過渡(沒有任何自定義的關鍵幀定時)的最佳方式轉變的意見是做一些事情,如以下摘錄:iPhone:與核心動畫

[[self animator] replaceSubview:aView with:bView]; 

不幸的是,動畫師的財產不適用於iPhone。在iPhone上做這個最好的選擇是什麼?它是否在每個視圖上設置了Alpha通道?示例代碼會很好。

謝謝。

回答

0

在iPhone上動畫視圖的基本方法是使用UIView beginAnimations和commitAnimations調用。它們允許您修改視圖的動畫屬性並將這些更改設置爲動畫。

例如我有被隱藏和使用該方法所示的自定義視圖:

- (void) showAView:(CustomAView *)aView 
{ 
    [UIView beginAnimations:nil context:nil]; 
    [UIView setAnimationDuration:0.5];  
    aView.frame = CGRectMake(0.0f, 110.0f , aView.frame.size.width, aView.frame.size.height); 
    [UIView commitAnimations]; 
} 

- (void) hideAView:(CustomAView *)aView 
{ 
    [UIView beginAnimations:nil context:nil]; 
    [UIView setAnimationDuration:0.5]; 
    aView.frame = CGRectMake(0.0f, self.view.frame.size.height, aView.frame.size.width, aView.frame.size.height);  
    [UIView commitAnimations]; 
} 

通過包裝在了UIView beginAnimations/commitAnimations的變化具有施加到其上的標準的動畫幀的屬性更改。

您可以使用UIView動畫類方法向動畫添加其他屬性,例如。

[UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:self.view cache:YES]; 
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; 
+0

嘿保羅,你可以進一步細化,通過褪色視圖和褪色的另一個?這個只是隱藏了一個視圖。它並不像上面的動畫設計師那樣精確地處理過渡。 – Coocoo4Cocoa 2009-05-20 22:14:17