問題タブ [nsanimationcontext]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
8875 参照

cocoa - NSLayoutConstraint.constantはアニメーションを無視します

アプリケーションの1つに対して、自動レイアウトに適した分割ビュークラスを作成しています。そのさまざまな機能の中には、NSSplitViewと同じように、ペインを折りたたんだり、折りたたんだりすることができるというものがあります。

制約を使用しているので、必要なwidth =(現在の幅)制約をペインに配置し、アニメーション化された方法で制約の定数を0に設定することでこれを実現しています。

これは美しく機能します。残念ながら、後でペインを拡張してもうまくいきません。

タイミングコードを挿入すると、完了ハンドラーがほぼ瞬時に起動し、アニメーション化する前に制約が削除されていることがわかります。NSAnimationContextに期間を設定しても効果はありません。

私がここで間違っている可能性があることについて何か考えはありますか?

0 投票する
1 に答える
660 参照

objective-c - NSSplitview とウィンドウ サイズをアニメーション化する

私が達成しようとしているのは、ユーザーがボタンを押すと、ウィンドウが拡大し、余分なスペースがパネルによって取り除かれ、 NSSplitviewスペースを埋めるために拡大することです。

ウィンドウのサイズ変更と分割ビューの成長を個別に簡単にアニメーション化できますが、2 つのアニメーションを一緒にしようとすると、必然的に一方が他方より先に発生したり、段階的に発生したりします。最初にウィンドウが部分的にサイズ変更され、次に分割ビューのサイズ変更が続き、次にウィンドウのサイズ変更が終了し、最後に分割ビューも終了します。なぜそれが起こっているのでしょうか?

私が使用するコードは次のとおりです。

0 投票する
1 に答える
930 参照

cocoa - NSView アニメーターが Cocoa で動作しない理由

プロジェクトに移動したい NSView がありますが、他のオブジェクトに通常使用するアニメーションが動作しません...移動するにはどうすればよいですか? これが私のコードです:

0 投票する
2 に答える
4917 参照

objective-c - NSView を中心に回転

中心を中心に NSView の回転をアニメーション化しようとしていますが、回転中に左右に移動し続けます。これは何が原因ですか?

回転中のシフトアップ:

ここに画像の説明を入力

回転中のシフトダウン:

ここに画像の説明を入力

0 投票する
1 に答える
1630 参照

objective-c - NSAnimationContext runAnimationGroup がキャンセルまたは成功したかどうかを確認します

ビューを (表示することによって) アニメーション化した後、(アニメーションが完了したら) 通知を投稿する必要があります。ただし、アプリの設計方法では、ビューが非表示になったときに (アニメーションを介して) 別の通知が送信されます。したがって、基本的に「showView」と「hideView」メソッドがあります。それぞれ次のようにします。

問題は、バックグラウンドの別のスレッドに、「健全性チェック」を実行する定期的なタイマーがあり、ビューが必要ない場合は非表示にする必要があるかどうかを確認することです。これは積極的なアプローチですが、アプリの多くのコンポーネントがさまざまなイベントやシナリオに対応するために必要です。このため、ユーザーが「showView」をクリックしたときに「競合状態」が発生することがありますが、同時に、スレッドの1つがビューをすぐに非表示にする必要があると感じています。

両方がメイン スレッドに通知を投稿すると、アプリは SpinLock で無期限にハングします。上記のアニメーション ブロックが「キャンセル」されたかどうか (つまり、同じビューで別のアニメーション ブロックが実行されたかどうか) を把握できれば、この状況を完全に回避できます。そのような状況では、通知を投稿しないので、チェックは強制されません。

簡単に言えば、アニメーションが正常に終了した後に「completionHandler」が呼び出されたかどうか、またはアニメーションがキャンセルされたかどうかを確認できる必要があります。iOS ではこれが可能であることはわかっていますが、OS X ではこれを行う方法が見つかりません。助けてください。

0 投票する
1 に答える
366 参照

ios - iOS 用の NSAnimationContext

私の質問は次のとおりです。

  1. NSAnimationContext は iOS で動作しますか?

  2. 質問 1 の答えが「いいえ」の場合、CATransaction は適切な代替品になりますか?

0 投票する
0 に答える
182 参照

cocoa - NSAnimationContext の誤動作

メインウィンドウをトリガーして高さをアニメーション化するボタンがあり、プルダウンメニューにいくつかのオプションが表示されます。ボタン(およびその兄弟)はウィンドウの2つの下隅に配置されているため、ウィンドウの下の端から一定の距離で「ロック」されて、ウィンドウと一緒にアニメーション化する必要があります。

問題:ボタンはおそらく 10 回に 1 回は適切にアニメーション化されますが、残りの時間は y 軸上でランダムにずれているように見えます。その上、2 つのボタンは異なるオフセットを取得します。アニメーション コードは同じですが、動作は同じではありません。

OSX 10.9 Mavericks に展開して実行すると、アニメーションは適切に動作します - 誤動作はありません。

次の簡単なコードを OSX < 10.9 で動作させる方法についてのアイデアはありますか?

0 投票する
0 に答える
237 参照

objective-c - 複数のビューで同時に NSAnimationContext

私は2つ持っていNSViewsます。あるビューを画面外にスライドさせ、別のビューをビューにスライドさせるという単純な必要があります。

私は遊んでいてNSAnimationContext、うまく単純なアニメーションを実現することができましたが、両方のビューをアニメーション化することはできません。

これが私のコードです:

両方のビューを左から右に 1000 ピクセル (つまりanimViewOffset) 移動するだけです。

コードは現在なので、アニメーションのみになりsingUpViewます。signUpViewフレームの原点を設定する行をコメントアウトすると、 loginView. しかし、両方を一緒にアニメーション化することは決してありません。

それらが一緒にアニメーション化されるようにするにはどうすればよいですか?

0 投票する
3 に答える
1765 参照

objective-c - NSAnimationContext completionHandler が機能しないのはなぜですか (時々)?

この場合、完了ブロックが実行されましたが、残念ながらウィンドウの再配置が完了するのを待ちません。代わりに、ウィンドウの編集シートをすぐに開き、それらを一緒に移動します。

最も奇妙なことは、同じソースファイルの数行上で同じタイプの補完ブロックが正常に機能することです:-O

ここで何が欠けていますか?