問題タブ [nsviewanimation]
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.
cocoa - CoreAnimation テクニックよりも NSViewAnimation を使用する理由はありますか?
私はSnow Leopardアプリに取り組んでおり、いくつかのビューアニメーションを行っています(それらを交換しています)。NSViewAnimationを使用した古い例を見てきました。これらは Core Animation によって完全に廃止されたのでしょうか?
私が使用するのはかなり簡単なようです
しかし、何か不足しているのか、それとも NSViewAnimation がまだ関連しているのか (下位互換性以外) は疑問に思っています。
objective-c - プッシュ アニメーションを使用したスワップの表示
古いビューを脇に押して新しいビュー (kCATransitionPush タイプ) にスライドさせることで、あるビューを別のビューに交換したいと考えています。CoreAnimation を使用するには、自分のビューで CALayers を操作する必要があります。問題は、setWantsLayer を使用してバッキング レイヤーをウィンドウ コンテンツ ビューにアタッチすると、ビュー内のすべてが歪むことです。
これが、MAAttachedWindow ( http://mattgemmell.com/source )と呼ばれる NSWindow のサブクラスを使用しているという事実と関係があるかどうかはわかりません。画面上の別の要素。
必要に応じて、この歪みのスクリーンショットを提供できます。私は NSViewAnimation でアニメーションを動作させましたが、他の多くの人が経験したように、NSViewAnimation は非常に遅いです。CoreAnimation を使用したいのですが、この問題により使用できません。
どんな洞察も大歓迎です
cocoa - NSView のインスタンスがマウス イベントを受信しないようにする
コア アニメーション レイヤーがオンになっているウィンドウに NSView があります。このビューを使用して、時々アニメーション付きの画像を表示します。画像だけでなく、ビュー全体をバックレイヤーにする必要があります。私が AnimationBaseView と呼んでいるこのビューの背後には、ユーザーが操作する他のビューがあります。
AnimationBaseView が他のビューが rightMouseDown イベントを取得できないことを除いて、すべて問題ありません。
私は次のことを試しました:
- acceptFirstResponder に NO を AnimationBaseView に返す
- 必要に応じて AnimationBaseView を隠したり隠したりしますが、ちらつきが発生します。
助けてくれてありがとう、ホセ。
cocoa - CIFilterを使用したCATransitionは、最初は機能せず、2回目は機能します
NSViewにCATransitionアニメーションを追加したい。私は次のコードを持っています:
問題は:
このコードを実行します。
[[contentView animator] addSubview:mySubview];
初めてですが、動作しません。ビューが表示されます。CATransition
デリゲートメソッドが呼び出されますが、finished
フラグはNO(false)です。ビューを削除
[mySubview removeFromSuperview];
すると、アニメーションで削除されfinished
ます。フラグ= YES(true)。手順2と3を繰り返しますが、アニメーションで機能します。ステップ2は、アニメーションが
finished
(YES)であったことを示しています。期待どおりに動作します。
どうしたの?
objective-c - NSViewAnimationとNSAnimationEaseOutの奇妙な動作の使用
ドラッグできる私のビューの1つでは、ユーザーが不適切な場所にドロップすると、マウスが下がったときに記録された元のフレームに戻るだけです。これはアニメーションなしで数日間正常に機能していますが、アニメーションを導入することにしました。
これはNSAnimationLinearとデフォルトのNSAnimationEaseInOutで機能しますが、実際に必要なのは、NSAnimationEaseOutが実行するはずの減速感だけです。何らかの理由で、これを使用すると、ビューは終了するフレームにすぐにスナップし、カーソルがドロップした場所(開始フレーム)にスライドして戻り、終了フレーム(あるべき姿)にスナップバックします。 。
他のすべてのモード(NSAnimationLinear、NSAnimationEaseIn、NSAnimationEaseInOut)は問題なく機能しているようです。NSAnimationEaseOutの目的を誤解していますか?
cocoa - NSAnimation を iPhone のように「現在の状態から開始」する方法はありますか?
ウィンドウのサイズ変更時にビューを別の位置に移動させたい。現在、NSWindowDidResizeNotification の受信時に NSViewAnimation でこれを行っています。
(「アニメーション」は、NSAnimation が必要とするように、ビューの新しい四角形を含む dict を持つ配列です) ウィンドウのサイズを変更すると、このコードが複数回呼び出されます。したがって、サイズを変更すると、このコードは 1 回のサイズ変更で約 20 回呼び出されます。ビューが動くアニメーションが 20 個あります。20種類が重なります。(多くの異なるビューのように見えますが、アニメーション間を移動するのと同じものだと思います)
iPhone では、移動するビューのみがあり、[UIView setAnimationBeginsFromCurrentState:YES] を設定すると機能します。OSXでこれを行う方法はありますか? ビューに isAnimating 変数を作成することはできますが、その変数は 1 つの位置にしか移動せず、アニメーション中のクイック サイズ変更を無視します。
OSXでこれを行うにはどうすればよいですか? ありがとう
cocoa - NSViewAnimation - 遅すぎる
私はココアプログラミングにまったく慣れていません。カスタム ビュー (iBox) があり、その中に別のクラス (iCircle) のカスタム ビューが 8 つ以上あります。iBox のサイズを変更し、iBox の特定の側面から 8 つの iCircle をそれぞれ移動するアニメーションを作成したいと考えています。
一番簡単な方法で作りました。8 つの iCircle と iBox のそれぞれに NSViewAnimationTargetKey、NSViewAnimationStartFrameKey、NSViewAnimationEndFrameKey を含む 9 つの NSDictionaries を含む NSViewAnimation オブジェクトを作成しました。
そのため、アニメーションを開始すると、スライドショーのように再生が非常に遅くなりますが、アニメーションではありません。非常に古い GPU で動作する 3D ゲームのように見えます。iBox と 1 つの iCircle だけをアニメーション化すると、スムーズに再生されます。
私の質問は次のとおりです。そのような行動の原因を正確に知っていますか? それは NSViewAnimation オブジェクト内の多数の Dictionaries ですか、それとも多数の iCircle ですか。多分それらは NSViewCells のようなものであるべきです。セルを使用すると、同じタイプの個別のビューよりもはるかに効率的であるとどこかで読みました。
このようなアニメーションを最適化して効率的かつスムーズに実行するにはどうすればよいでしょうか?
この質問について何か助けていただければ幸いです。
objective-c - NSView フレームをアニメーション化してから、特定のフレームにジャンプする
NSView
グリッドを上にスライドさせて、別の行から別の行を明らかにしようとしていNSView
ます。次に、アニメーションが完了すると、2 番目のアニメーションはNSView
消え、最初のアニメーションはすぐに新しいデータで元の位置に戻ります。
それは時間の 4/5 を動作します。私が得ている唯一のエラーは、最初のビューが元の位置にリセットされない場合です。アニメーションが終了したままです。
これが基本的な考え方です(ここにコードはありません):
runAnimationGroup:completionHandler
Lion では新しいので、Google で問題が発生しています。
nsviewanimation - NSViewAnimationを使用してframeRotationを継続的にアニメーション化する
レイヤーバックNSViewのframeRotationを継続的にアニメーション化する正しい方法を見つけようとしています。
特に、私は基本的に、アイコンをクリックして押したままにしたときに新しいLaunchpadがどのようにアニメーション化するかを再現しようとしています。イベント処理は問題ではなく、実際の繰り返しアニメーションです。
これまで、NSTimerを使用して、ビューのアニメータープロキシを使用してframeRotationを前後にアニメーション化してきました。これは機能しますが、リソースを大量に消費するようであり、NSAnimationを使用できると確信しています。
ここで誰かが私を正しい方向に向けることができるかどうか疑問に思っています。
ビューのフレームの四角形とアルファ値についてのみ説明します。したがって、これをframeRotationに使用する方法がわかりません
よろしく、アレック
cocoa - kCGDesktopWindowLevel を使用した NSWindow の NSViewAnimation のちらつき
デスクトップアイコンの後ろのデスクトップに配置するように設定しています(壁紙など)NSWindow
。kCGDesktopWindowLevel
を使用して、そのウィンドウ内の 2 つのビューをクロスフェードしようとしていますNSViewAnimation
。
問題は、アニメーションがちらつくことです。ウィンドウレベルまで追跡しました。
デフォルトのウィンドウ レベルを使用すると、アニメーションは期待どおりにスムーズに実行されます。
理由は何か提案はありますか?そのレベルでのウィンドウの描画方法に違いはありますか?
編集:
これは RunLoop の問題でしょうか? バックグラウンド ウィンドウはユーザー入力を受け取りません。ただし、私のアプリには、入力を受け取ることができる別の通常のウィンドウもあります。