Изменить 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

Другие вопросы по тегам