2009-09-14 9 views
7

私はSnow Leopardアプリで作業しています。私はいくつかのビューアニメーション(スワップしています)をしています。NSViewAnimationを使ったいくつかの古い例を見てきました。これらがCore Animationによって完全に廃止されたのかどうか疑問に思っていますか?CoreAnimation技術よりNSViewAnimationを使用する理由は何ですか?

私は

[[myView animator] setFrame:newSwapFrame]; 

を使用することはかなり単純なようだが、私は何かが欠けていた場合、私はただ思ったんだけど、またはNSViewAnimationはまだ(下位互換用以外の)関連性がある場合。

答えて

5

一般に、10.5以上のコードの場合はCore Animationに移動する必要があります。 NSViewAnimationはかなり基本的なものであり、ハードウェアを効率的に使用することはできません。私はNSViewAnimationと10.4の互換性以外に留まることの利点について考えることはできません。

3

Core Animationが適切でない場合があります。たとえば、レイヤーバックビューにWebViewを配置することはできません。

また、レイヤーバックビューのテキストフィールドは、サブピクセルのアンチエイリアシングを使用しません。

レイヤーバックビューを使用していない場合、アニメーション化可能なプロパティーサポートを使用する例は、NSAnimationを使用するよりもはるかに簡単です。

+0

私はUIKitとそのアニメーション技術について深く熟知していますが、レイヤーバックビューと単にビューのアニメーターを使用する間の違いは何ですか? – jbrennan

+1

アニメータプロキシはCoreAnimationとは関係ありません。非レイヤーバックアップNSViewは、レイヤーバックビューと同様に、それをサポートします。 – kperryua

+2

レイヤーバックビューのテキストフィールドは、サブピクセルアンチエイリアスを使用できます。テキストフィールドのbackgroundColorを不透明な色に設定し、drawsBackgroundプロパティをYESに設定する必要があります。ここをクリックしてください:http://www.cocoabuilder.com/archive/message/cocoa/2008/3/28/202581 –

0

後でウィンドウのスクリーンショットを取得する必要がある場合(たとえば、2つのウィンドウ状態の間のトランジションアニメーションを作成する場合)、Core Animatedビュー(CAAnimationのビュー)はグラブされていない可能性があります。 しかし、CAAnimationは常に高速で動作し、CPU使用量が多すぎるとNSAnimationが遅くなることがあります。

関連する問題