首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIKit动态行为pan与附件不连续碰撞行为?

UIKit动态行为pan与附件不连续碰撞行为?
EN

Stack Overflow用户
提问于 2016-09-29 12:41:54
回答 1查看 354关注 0票数 10

如何在UIDynamicItem的pan上进行碰撞检测?

背景:我正在从一组颜色/字符串随机生成20个标签(这个部分对这个问题并不重要),然后用一个随机的中心位置将它们添加到主视图中。在这里,我添加了UIDynamicBehaviors,如下所示:

( 1) UIDynamicItemBehavior阻止标签旋转( UISnapBehavior ),将标签贴在视图的中心(我想要一个类似重力的运动,但又不是这个问题),对于所有collisionMode.Items的标签,UICollisionBehavior都是这样。

这在“初始”的setup...all中起作用--标签出现在随机点上,然后在中心快速地合在一起,并进行适当的碰撞检测。我的问题是,我如何才能移动标签(通过一个平底锅手势),以便碰撞检测继续进行?

我已经在每个标签上设置了一个UIPanGestureRecognizer,当它们开始拖动时,我创建一个UIAttachmentBehavior并在拖动时使用它来移动它们。这“工作”的意义上,标签移动,但它将只是滑过所有其他标签,而不发生任何碰撞检测。如何实现碰撞检测,以便当我开始将一个标签拖向其他标签时,它们移动的距离就足以避免重叠(然后这些标签就会根据中心重力点恢复到它们的位置)。我是否需要将一个UIAttachmentBehavior附加到我为每个平底锅拖动的标签上?

我为我面临的问题创建了一个测试项目,展示了我刚才描述的内容:

github测试项目

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-18 03:24:01

嗯,经过几个月的思考这个问题,我终于想到了一个解决办法,所以我想为了大家的利益,我以后会把它发到这里。

这是一个非常容易实现的简单的SpriteKit场景。我只需要创建一个小SKScene,用我想要的任何文本/颜色/大小将SKLabelNode添加到场景中,然后用radialGravityField添加一个SKFieldNode。从这里开始,物理属性可以通过每个节点的physicsBody属性来播放,我可以通过插入场景的touchesBegan方法并适当地移动适当的节点来完成所需的任务,物理引擎负责处理碰撞和弹跳。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39770648

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档