2012-01-18 6 views
0

私が知っているように、簡単に言えば、Core Animationは実際には時間の経過とともにプロパティ値を補間することによって動作します。これを考えると、特定の時間にプロパティを補間する方法はありますか?たとえば、私は、アニメーションiOSコアアニメーション値補間

animation = [CABasicAnimation animationWithKeyPath:@"opacity"]; 
animation.duration = 1.0; 
animation.fromValue = [NSNumber numberWithFloat:0.0]; 
animation.toValue = [NSNumber numberWithFloat:1.0]; 

を持っている不透明度値も0.5のとき0.5秒、たとえば、で層を凍結する方法はありますか?

Core Animationで行う方法がない場合、これを可能にするobjective-c用のトゥイーンライブラリがありますか?

答えて

-1

コアアニメーションでキーフレームアニメーションを使用できます。ここで

は、アニメーションを凍結する可能性があり、それは開始時間プロパティまたはTIMEOFFSETプロパティです変更される場合があります0へのスピードプロパティを設定することで、アニメーションを凍結することが可能であるtutoirial

+0

私が欲しいのは、キーフレームアニメーションではありません。私は意志で特定の状態に補間することができる基本的なアニメーションが欲しいです。私は1秒間の基本アニメーションを作ったとしましょう。0.3秒間のアニメーションをした後の状態と同じ状態にしたいとします。単純に "0.3に補間"するなどします。 – vangoz

0

です。

これらのプロパティの両方のドキュメントは本当に悪いです。よりよい情報のために、このリンクをチェックアウト:

Time warp animation

0

オープンソースINTUAnimationEngine libraryが正確に何をしたい行います。

それはここで最も基本的な変種だ、非常に多くのUIViewの上のブロックベースのアニメーションのAPIのように見えるAPIを提供します:重要な違​​いは、あなたがINTUAnimationEngineに渡すanimationsブロックが実行されるということです

// INTUAnimationEngine.h 

// ... 

+ (INTUAnimationID)animateWithDuration:(NSTimeInterval)duration 
           delay:(NSTimeInterval)delay 
          animations:(void (^)(CGFloat percentage))animations 
          completion:(void (^)(BOOL finished))completion; 

// ... 

は、毎回animationsブロックに渡されるpercentage(またはprogress)の値は、アニメーションの現在の状態を反映しています。

これを使用して、カスタム補間、トゥイーン、その他の必要なロジックを簡単に実行できます。