如何在 a 的盘上进行碰撞检测UIDynamicItem
?
背景:我从一组颜色/字符串中随机生成 20 个标签(这部分对问题来说不是必需的),然后将它们添加到具有随机中心位置的主视图中。从那里,我添加UIDynamicBehavior
s,如下所示:
1)UIDynamicItemBehavior
停止标签旋转 2)UISnapBehavior
将标签捕捉到视图的中心(我想要类似重力的运动,但同样,这不是这个问题) 3)UICollisionBehavior
对于collisionMode
is的所有标签.Items
。
这适用于“初始”设置......所有标签出现在随机点,然后在中心快速对齐,并进行适当的碰撞检测。不过,我的问题是,我怎样才能移动标签(通过平移手势)以继续进行碰撞检测?
我UIPanGestureRecognizer
在每个标签上都设置了一个,当它们开始拖动时,我创建一个UIAttachmentBehavior
并在拖动时使用它来移动它们。这在标签移动的意义上“有效”,但它只会滑过所有其他标签而不会发生任何碰撞检测。我怎样才能实现这种碰撞检测,以便当我开始将一个标签拖向其他标签时,它们会移开刚好足以没有重叠(然后这些标签会根据中心重心点迅速回到它们的位置) ? 我是否需要将UIAttachmentBehavior
所有其他标签附加到我为每个平底锅拖动的标签上?
我为我面临的问题创建了一个测试项目,它展示了我刚才描述的内容:
谢谢!