2017-01-05 2 views
1

Не используя SpriteKit, можно ли моделировать гравитацию для объекта UIView? То, что я пытаюсь достичь, - это центр UIView с другим объектом, плавающим вокруг него. Почти как планеты вокруг Солнца. А также привлекать и отталкивать от объекта центра.Можно ли моделировать гравитацию для объекта/UIView в UIDynamicKit?

Я знаю, что вы можете добавить горизонтальную и вертикальную гравитацию в супервизор.

Спасибо!

ответ

1

Решение заключается в использовании UIAttachmentBehavior.

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

      self.animator.addBehavior(attachment) 

Приведенный выше код будет иметь объекты узла, прикрепленные к self.ownerNode. Я также добавил UISnapBehavior к self.ownerNode, чтобы при удалении от центра self.ownerNode всегда привязывался к центру, и все остальные следовали за ним.

1

Другой подход: использовать поле.

UIKit Dynamics приносит поля на стол где-то вокруг iOS 9, я думаю.

Поля обеспечивают одинаковые, похожие или уникальные векторы «силы» для всех позиций в пределах их ... Поле влияния. Отсюда и название.

Вы можете переключить поле, так что оно толкает в один момент, потянув за другой или даже объединит их, сложите их и выровняйте по экрану в областях влияния.

Одно поле может действовать как планетарная гравитационная сила в середине экрана, заставляя спутники перемещаться вокруг него, попадать в него или отталкиваться.

Поля - очень мощная функция UIKit Dynamics, как с точки зрения творчества, так и влияния. Они также замечательно эффективны, потому что они действуют только на те вещи, которые вы определяете, чтобы ими влиять. Таким образом, хотя их размер поля может быть большим, а их функции, определяющие сложность позиционного влияния, они по-прежнему очень эффективны.

Вы можете читать/смотреть/слушать больше о них здесь:

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

Смежные вопросы