問題タブ [uidynamicanimator]
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.
ios - メインメニューから戻った後、UIDynamicsAnimator がエラーを引き起こす
2 つのビュー コントローラーがあります。1 つはメイン メニュー、もう 1 つはゲームです。ゲームにはドロップするボックスがあり、ユーザーがそれをキャッチしないと、画面から落ちて上部の元の位置にリセットされます。
アプリはメイン メニューに読み込まれ、初めてプレイするときは完璧に動作します。何回でも問題なくプレイできます。ただし、メイン メニュー (モーダル セグエ) に戻ってからゲームに戻ると、アニメーションを再開しようとするとすぐに、「ボックスは参照ビューの子孫である必要があります」というエラーが表示されます。 UIDynamicAnimator」. この特定のセクションのコードを以下に示します。
何時間も検索しましたが、なぜこれが起こっているのかわかりません。ビュー コントローラを完全に更新して、最初と同じように動作させることはできますか? UIDynamicAnimator の referenceview パラメータを変更する必要がありますか? 私は途方に暮れています。誰か助けてください!!
(上記のコードは IBAction にあることに言及する必要がありますが、追加しようとしてもviewDidLoad
役に立ちませんでした....)
また、私が得ている公式のエラーは
キャッチされていない例外 'NSInvalidArgumentException' が原因でアプリを終了しています。 UIDynamicAnimator の参照ビューの子孫である必要があります: UIView の 0x7ffb11da8120 (0.000000s): 0x7ffb11da84c0 {{0, 0}, {375, 667}}
「ボックス」の初期化に関係するすべてのコードは次のとおりです。
基本的に、ボックスは落下して下に回転し、画面から落ちるとアニメーションが停止し、ユーザーが再度ボタンを押すまで、ボックスは上部の元の位置に置き換えられます。
*****編集: 役立つ情報がいくつかあります。ゲームをプレイし、メイン メニューに戻ってもう一度戻ってきたときに、プログラムでボックスに何かを行うと、アプリがクラッシュします。ViewDidLoad にタグを追加しようとしたところ、クラッシュしました。箱に何か入っているはずなのですが、さっぱりわかりません。
ios - Autolayout が実行中の場合の UIDynamicAnimator によるアニメーション化
すべてのサブビューに AutoLayout を使用するように InterfaceBuilder で構成された ViewController があります。レイアウトはうまく機能しています。
UIDynamicAnimator が提供するクールな重力効果を使用して、サブビューの 1 つをバウンスさせたいと考えています。AutoLayout でうまくいくとは思いませんでしたが、試してみたところうまくいきました。それはかなりうまくいきます!
私の質問は、これは予想される動作ですか? どこかで問題を起こすのでしょうか?Apple は、AutoLayout と UIDynamicAnimators の組み合わせに関するガイダンスを提供していますか?
興味のある人のためのコードは次のとおりです。
ios - UIDynamicAnimator からのクラス継承で addChildBehavior を使用できない理由
Stanford CS193P で ios を学習していますが、講義 8 で問題が発生しました
UIDynamicAnimator から DropItBehavior 継承という名前のクラスを作成しましたが、UIDynamicAnimator メソッド addChildBehavior を使用できません。「"DropItBehavior" の目に見える @interface がセレクター 'addChildBehavior' を宣言していません」のような xcode 警告
ここに.hファイルがあります
ここに.mファイルがあります
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 で同じことを実装しましたが、まったく問題はありません。
ios - UIView iOS コントロール センターのように跳ねる
iOS コントロール センターと同様の動作ができる UIView を作成しようとしています。私の現在のコードは、プルアップして表示し、プルダウンして非表示にすることができます。
デモ:
質問 1: 誰かが例を挙げたり、これを達成する方法を説明したりできますか?
質問 2 (ここにいくつかの愚かな質問): iOS コントロール センターはどのように実装されていますか? UIViewController または UIView を使用していますか?
ios - UICollisionBehavior 境界が機能しない
ナビゲーションコントローラー内にビューがあります。
次に、このビューにサブビューを追加し、元の高さをオフセットして、画面の半分だけをカバーするようにします (残りの半分は画面の下部からはみ出します)。このビューを上にドラッグできるようにしたいのですが、ナビゲーションバーの下部に到達すると停止します。
UIPanGestureRecognizer
ビューのドラッグを処理するためにa を使用していますが、これは正常に機能しますが、境界で停止しているようには見えません。
これは私が使用しているコードです:
ただし、カバービューを上にドラッグすると、境界と相互作用することはなく、まっすぐ通過します。私は何を間違っていますか?このようにユーザーがドラッグしているビューを境界を使用して停止することはできますか?