不使用SpriteKit,是否可以模拟UIView对象的重力?我想要实现的是一个中心UIView,其他物体漂浮在它周围。几乎像太阳周围的行星。并且它也会从中心物体吸引和排斥。
我知道你可以为superview添加水平和垂直重力。
谢谢!
答案 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的一个非常强大的功能。它们也非常有效,因为它们只对你规定受其影响的事物采取行动。因此,尽管它们的场大小可能很大,并且它们的功能决定了位置影响的复杂性,但它们仍然非常有效。
您可以在此处阅读/观看/收听有关他们的更多信息: