2012-03-30 12 views
2

Mac OS Xドックのようなファンビュー(「ダウンロード」や「ドキュメント」フォルダなど)をCocoaで実装しようとしています。ファンビューを実装する - Cocoa

私は現在、透過ウィンドウのコンテンツビューにボタンを追加し、NSViewAnimation(グループアニメーション)を使用してボタンのフレームをアニメートしています。しかし、アニメーションは期待通りに滑らかではありません。

これを実装するための他の最適化方法はありますか?

答えて

2

これにはCore Animationを使用する必要があります。アニメーション全体を収めるのに十分な大きさの透明なビュー/ウィンドウを作成する必要があります。その後、CALayerオブジェクトを使用して実際のアニメーションを実行する必要があります。

コアアニメーションレイヤーは基本的にOpenGLサーフェスの周囲の高レベル軽量ラッパーで、レイヤーのレンダリングはGPUによって行われ、NSViewAnimationなどのCPU管理アニメーションよりもはるかに優れたパフォーマンスを提供します。

コアアニメーションレイヤーは軽量であるため、イベントハンドリングは組み込まれていないため、ビュー/ビューコントローラですべてのマウストラッキングを行う必要があります。

他のオプションでは、レイヤー付きビュー(独自のCALayer)が使用され、アニメータプロキシを使用してボタンの位置がアニメートされます。これは、あなたが望むものを達成するのに十分であるかもしれません。ボタンがまだいっぱいであるので、NSButtonオブジェクトには、まだ、すべてのNSViewイベント処理があります。

これらの技術がどのように機能するかを知るには、おそらくAnimation Overviewをお読みください。

関連する問題