私は現在、プロジェクトに最終的なタッチをかけています。アニメーションsetHidden:NSViewでCocoaバインディング経由
現在のところ、UIロジックの多くは(すべてではないが)ココアバインディングに依存しています。 ユーザーインターフェイス要素(ラベル、ボタンなど)には、「隠し」バインドが定義されているものがあります。特定のイベントがトリガされると、これらの要素の可視性がトグルされます。
私は可視性の変更をアニメーション化しようとしています(不透明度をアニメーション化して、おそらくスケールをアニメーション化しています)。これは、関連するレイヤーのプロパティを設定したり、レイヤーにアニメーションを追加したりするなど、さまざまな方法で簡単に行うことができます。しかし、私はバインディングの振る舞いに完全に頼っているので、実際にはできませんこれは直接です。
私は、関連する要素のキーkCAOnOrderIn
とkCAOnOrderOut
のためのアクションを定義することにより、レイヤのアクションを使用して実装を試してみましたが、setHidden:
が最も可能性の高いNSView
代わりのCALayer
でトリガされているとして、それは本当に、動作しませんでした - - それは意味をなさない
私の質問は、setHidden:
がCocoa Bindingsによって呼び出されているときに、どのようにNSViewでsetHidden:
をアニメーション化しますか?
ありがとうございます。
は 'setHidden:'のCALayer *上*アニメーション可能です。順序入/出キーのデフォルトのアクションでは、実際にレイヤーの不透明度をアニメートさせるCATransitionを使用します。 – phluid
はい。隠しは、値を変更できるという意味でアニメーション可能ですが、可能な値は2つだけです。 Core Animationは、中間の値を補間します。非表示の場合は、YESまたはNOのいずれかです。しかし、あなたがしたいように聞こえるように聞こえるのは、setHiddenが呼び出されたときに自動的にフェードアニメーションをトリガーすることです。あれは正しいですか?もしそうなら、私はあなたがバインディングだけでそれを行うことはできないと思う。おそらく、コードを書く必要があります。アルファプロパティにバインドして、0または1のいずれかに設定することができます。探していると思われるかもしれませんが、どのように接続しているかわかりません。 –