是否可以在UIDynamicKit中模拟对象/ UIView的重力?

时间:2017-01-05 18:47:03

标签: ios uikit-dynamics

不使用SpriteKit,是否可以模拟UIView对象的重力?我想要实现的是一个中心UIView,其他物体漂浮在它周围。几乎像太阳周围的行星。并且它也会从中心物体吸引和排斥。

我知道你可以为superview添加水平和垂直重力。

谢谢!

2 个答案:

答案 0 :(得分:1)

解决方案是使用UIAttachmentBehavior。

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

            self.animator.addBehavior(attachment)

上面的代码将节点对象附加到self.ownerNode。我还将UISnapBehavior添加到self.ownerNode,以便当从中心拖出时,self.ownerNode将始终快速回到中心,并且所有其他节点都跟随它。

let snapCenter = UISnapBehavior(item: self.ownerNode, snapTo: self.view.center)
            self.animator.addBehavior(snapCenter)

答案 1 :(得分:1)

另一种方法:使用字段。

UIKit Dynamics在iOS 9的某个时候将字段带到了桌面上,我想。

字段为其影响力的...... 字段中的所有位置提供相同,相似或唯一的“力”向量。因此这个名字。

你可以切换一个字段,这样它就会在一瞬间推动,拉动另一个字体,甚至将它们组合起来,将它们分层并在影响区域的屏幕周围对齐它们。

单个场可以像屏幕中间的行星引力一样,使卫星围绕它移动,落入其中或被击退。

在创意和影响力方面,领域是UIKit Dynamics的一个非常强大的功能。它们也非常有效,因为它们只对你规定受其影响的事物采取行动。因此,尽管它们的场大小可能很大,并且它们的功能决定了位置影响的复杂性,但它们仍然非常有效。

您可以在此处阅读/观看/收听有关他们的更多信息:

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