2017-01-05 9 views
1

SpriteKitを使用しないと、UIViewオブジェクトの重力をシミュレートできますか?私が達成しようとしているのは、中心のUIViewで、他のオブジェクトがその周囲に浮かんでいます。太陽のまわりの惑星に似ています。また、中心のオブジェクトから引き寄せて反撃させます。UIDynamicKitのオブジェクト/ UIViewに重力をシミュレートすることは可能ですか?

スーパービューに水平と垂直の重力を加えることができます。

ありがとうございます!

答えて

1

解決策は、UIAttachmentBehaviorを使用することです。

let attachment = UIAttachmentBehavior(item: node, attachedTo: self.ownerNode) 

      self.animator.addBehavior(attachment) 

上記のコードはself.ownerNodeに取り付けられたノードオブジェクトを有することになります。私はまたself.ownerNodeにUISnapBehaviorを追加しました。中央から離れたところでドラッグすると、self.ownerNodeは常に中央に戻り、他のすべてのノードはそれに従います。

1

もう1つの方法:フィールドを使用します。

UIKit DynamicsがiOS 9の前後のフィールドにテーブルを持ってきたと私は思う。

フィールドは、それらのフィールド内のすべての位置に対して同じ、類似または固有の「力」ベクトルを提供します。フィールド影響。したがって、名前。

フィールドを切り替えることができるので、ある時点で押すか、別のフィールドを引っ張ったり、組み合わせたり、組み合わせたりして、影響を受ける領域の画面の周りに配置することができます。

単一のフィールドは、画面の中央で惑星重力のように作用し、衛星をその周りに移動させたり、落下させたり、撃退したりすることができます。

フィールドは、創造性と影響の両方の面で、UIKit Dynamicsの非常に強力な機能です。彼らはあなたがそれらの影響を受けると規定したものに対してのみ行動するので、非常に効率的です。したがって、フィールドのサイズが大きく、位置の影響を決定する関数が複雑な場合でも、それらは依然として非常に効率的です。

あなたがここではそれらについての詳細を聞く/ /時計を読むことができます:

https://developer.apple.com/videos/play/wwdc2015/229/

関連する問題