2011-06-27 9 views
1

ボタンをクリックすると、その背後にコンテンツが表示される2つのスライドパネル(エレベータードアに似ていますが、垂直方向に)を持つインターフェースを作成したいと思います。上下のドアがその背後にあるコンテンツを示す、/上下に移動しなければならないココアのZ深度を持つGUI

Window (NSWindow) 
|----ContentView (NSView) 
    |-------OpenDoor (NSButton) 
    |-------TopDoor (NSView) 
    |-------BottomDoor (NSView) 
    |-------Content (NsView) 
        |------Here some contents() 

のOpenDoorボタンを押す:

私の最初のアイデアは、このような構造を作成することでした。 これは、このようなことをするより良い方法であるかどうかはわかりません。この動作では、CALayerの方がGUIに最も適したソリューションですか?それ以外は?

答えて

0

はい、ドアコンポーネントにレイヤーをリクエストしてから、position.yをアニメーションします。

多少直感的ではありませんが、ビューのフレームを終了フレームに設定してから、その位置に基づいてアニメーションを作成する方が簡単です。

CABasicAnimationは、ここで簡単にカバーします。

+0

ありがとうございました。 CABasicAnimationでビューのフレームプロパティをアニメートすることをお勧めしますか? – MatterGoal

+0

ビューのフレームを上下に設定してから、 'position.y'をアニメートしてください(そうすることができます)。あなたはフレームでそれを行うことができますが、Yポジションを変える唯一の事は少しばかげているようです。これにより、トランジション中にウィンドウのサイズを変更したり、水平方向のリサイズを期待通りに行うこともできます。 –