Изменить UIGravityBehavior на определенную точку зрения
У меня есть несколько изображений, в которых я применил UIGravityBehavior, поэтому все они просто опускаются в нижнюю часть вида.
Мне бы хотелось, чтобы все изображения были "перетащены" в определенную точку вида, например, x = 160 и y= 300. Свойство gravityDirection точно соответствует названию, я могу управлять направлением силы тяжести, но не указывать определенное место.
Есть идеи, как сделать что-то подобное?
2 ответа
Если вы хотите сделать это чисто в UIDynamicAnimator
Вы могли бы использовать UISnapBehavior
, Попробуйте что-то вроде:
for myView in self.subviews as [UIView]{
var snapBehavior = UISnapBehavior(item:myView snapToPoint:myPoint);
self.animator!.addBehavior(self.snapBehavior);
}
Убедитесь, что вы объявляете переменную animator
, myPoint
это точка, которую вы хотите, чтобы ваши взгляды тянуть к. Надеюсь, поможет:)
Вы можете использовать новый класс SKFieldNode, чтобы сделать это:
https://developer.apple.com/library/ios/documentation/SpriteKit/Reference/SKFieldNode_Ref/index.html
import SpriteKit
let gravity = SKFieldNode.radialGravityField()
gravity.strength = 10.0
gravity.position = CGPoint(x: 160, y: 300)
// add the node to your scene
Вот также хороший пример того, как это сделать самостоятельно: stackru.com/a/22855948/887210