問題タブ [uidynamicbehavior]

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 投票する
1 に答える
673 参照

objective-c - iOSビューコントローラ遷移にUIDynamicAnimatorを使用する場合の遷移時間を計算する方法は?

ビュー コントローラーの遷移に動的アニメーターを使用するこの例を変更しています。私がやりたいことの 1 つは、それを iPad で動作させ、重力遷移の方向を上から下、右から左に変更することです。ビューのサイズ、適用される力、および重力の方向に基づいて、ビューの遷移時間を計算する方法があるかどうかに興味がありますか? 言い換えれば、ビューが正しい境界に達して跳ね返らなくなるまでの時間です。

この正しい期間を次から返したい:

私が取り組んでいる例では、プッシュの大きさが 100 に設定されています。これは iPhone の画面では機能しますが、iPad の画面では「遅すぎます」。私が理解していることから、力は画面サイズに適用されます.iPad画面は、時間内に移動するためにより強いプッシュが必要です.

そこで、次のようにコードを修正しました。

これは機能しますが、新しい移行にどれくらいの時間がかかるかわかりません。デフォルト値は 1.5 秒で動作しますが、0.7 秒に設定すると、ビューがトランジションの途中で動かなくなります。

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

ios7 - iOS7 UIPushBehaviorModeInstantaneous モードで UIPushBehavior の大きさを理解する方法は?

UIPushBehavior に関する Apple のドキュメントを見ていますが、瞬時モードで混乱します。加速度の式はForce = Mass * Accelerationであることは知っています。ビューの質量は width*height*density(1) であると仮定します。ドキュメントでは、プッシュの大きさを次のように説明しています。

デフォルトの大きさは nil で、力がないことと同じです。密度値が 1.0 である 100 ポイント x 100 ポイント ビューに適用される、マグニチュード 1.0 の連続力ベクトルは、角度または pushDirection プロパティによって示される方向に 100 ポイント/秒² のビュー加速をもたらします。

これは、一定の加速を提供する連続的な押しの点で理にかなっています。瞬間的なプッシュについては何も言いません。マグニチュード 1 の瞬間的なプッシュが 100x100 ビューに与える速度をどのように理解できますか?

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

ios - UIDynamicAnimator のアニメーションを遅くする

UIDynamicAnimator によって生成されるアニメーションを遅くして、UIDynamicBehaviors を微調整したいと考えています。

iOS シミュレーターでは、[Debug] メニューの下に [Toggle slow animations in frontmost app] というメニュー オプションがあります。

ただし、このオプションは、UIDynamicAnimator によって生成されるアニメーションには影響しないようです。私の目標を達成するための他の方法はありますか?

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

ios - 画面の中心に重力の動作を適用できますか?

私は uidynamicbehavior (UIGravityBehavior) を使用しています。私はgravityDirectionで遊んだが、画面の中央に焦点を合わせることができなかった.

重力を画面の中央に集中させる方法はありますか。

基本的に私が望むのは、ビュー (円) を離しても画面の中央に収束して表示することです。

どんな提案でも大いに役立ちます。

編集:コードを追加

線に沿って移動する重力の方向を与えることができます。画面の中央に作用するように重力を設定したい場合はどうでしょうか。つまり、画面の中心が重力の原点のように機能しているかのように、どこからでもオブジェクトが画面の中心に引き付けられる場合。:)

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

ios - UIDynamicAnimator が重力の変化に反応しなくなる

https://stackoverflow.com/questions/28275004/uidynamicanimator-stop-reacting-to-uigravitybehaviorに記載されているのとまったく同じ問題が発生しました。私もそれをうまく説明することはできません。

UIDynamicAnimator がオブジェクト/アイテムにUIGravityBehaviorアタッチされているアニメーション化を突然停止する理由を知っている人はいますか?

編集

Big Nerd Ranchの例を実行しています

エラーを簡単に再現できるように、キューブが 2 つだけになるように例を変更しました。立方体は落下し、重力にうまく反応していますが、立方体が角にぶつかり、互いに接触するように電話を傾けると、動きが停止し、重力の動作に反応しなくなります.

これがSwiftの問題なのかどうかも疑問です。Obj-C でこれを実装して、エラーが続くかどうかを確認する必要があるかもしれません。

次に例を示します。

EDIT2

UIGravityBehavior への応答を停止するために、互いに接触する必要がないことに気付きました。

EDIT3

わかりました、どういうわけかSwiftのバグのようです。私は ObjC で同じことを実装しましたが、まったく問題はありません。

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

ios - IOS UIDynamicAnimator の maskToBounds が衝突を境界として機能させない

私は、IOS 9 用のアプリケーションである Xcode 7 で作業しています。目標は、UIDynamicAnimator、UIGravityBehavior、および UICollisionBehavior を使用して、丸いオブジェクトをボールのように動作させることです。UIViews (ボールを表す) が丸みを帯びているように見えますが、衝突中は四角形のように動作することを除いて、すべて正常に機能します。「ボール」をビルドして追加するコードは次のとおりです。

これらのオブジェクトを丸い形のように動作させるには、どのプロパティを設定する必要がありますか?

以下は、重力と衝突の影響を受けた形状が地面/境界にどのように配置されるかを示すアプリの画面です。スクリーンショットに長方形の境界線を描画して、目に見えない実際の境界線を表示しますが、ボールが丸いオブジェクトとして動作するのを防ぎます。

アプリケーションのスクリーンショット1

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

ios - UIDynamicAnimations の使用とアイテムの作成と削除でパフォーマンスの問題が発生しています

をもとにアプリを作りましたUIDynamicBehavior。これは、画面の中央に円があり、ボールが中央から外側の円に向かって発射され (ボールが当たると消える)、この「発射」の間隔がどんどん短くなるゲームです (これはそうです)。問題は発生しません。後で説明します)。問題は、約 100 周するとすべてが非常に遅くなり、「起動」するたびにゲーム全体が一瞬フリーズし、問題が非常に大きくなって全体がフリーズすることです。

問題は、どういうわけかボールを正しく削除していないようです。間隔が変わらず、同時に画面に表示されるボールの数が常に同じ (3-4) の場合でも、問題は発生します。

これもメモリの問題ではありません。メモリ使用量は約 20MB にとどまっていますが、プロセッサは開始時に 0% から始まり、100% になるまで上昇を続け、全体が停止するだけです。

したがって、私が作成したボールは、そこにあるすべてのコードです。

そして、これは私がそれを動作に追加する方法です:

そして、これは私がそれを削除する方法です:

これは、他の円との衝突が発生したときに発火するように設定されています。

大量のコードで申し訳ありませんが、問題が発生している場所を特定できないため、特定するのが非常に困難です。

私はこの問題に2日以上取り組んでいますが、まだ理解できません。私はすべてを試し、ビヘイビアーを再利用して(削除する代わりに配列を作成したので、次のボールはそこからそれを取得して新しい角度を設定します)、マルチスレッド(私はそれについてあまり経験していません)、私も調べましたTime Profiler ですが、私は初心者なので、何も意味がありませんでした。経験豊富なプログラマーにとって問題はおそらくかなり明白であるべきだと思うので、彼が何をしているのかを知っている人が問題をチェックして見つけるために目を投げることができることを本当に感謝しています. それが役立つ場合、これが私のプロジェクトへのリンクです。ご覧のとおり、重要だと思われることが 2 つあります。私はサブクラスを持っていますUIDynamicBehaviorここでは、すべてのビヘイビアーをセットアップし、基本的な Swift クラス「BallLauncher」を持っています。これは、ボールを発射させる原因となるはずなので、そこにも問題がある可能性があります。