2009-05-20 3 views
1

と意見を移行、(任意のカスタムキーフレームタイミングなし)ビューのシンプルなクロスフェードトランジションのための最善の方法は、以下の抜粋のように何かをすることです:iPhone:MacのCore Animationの

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

残念ながら、animatorプロパティはiPhoneでは利用できません。 iPhoneでこれをやっている最善の策は何ですか?各ビューでアルファチャンネルを設定していますか?サンプルコードは優れています。

ありがとうございました。

答えて

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

関連する問題