问题标签 [uikit-dynamics]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
580 浏览

ios - 奇怪的 SpriteKit + UIDynamics 错误

所以我正在使用 SpriteKit 开发游戏。为了让游戏更有趣,我决定使用 UIDynamicAnimator 为我的游戏中的 UIKit 元素添加一些物理效果。一切都很好,除了有一个主要问题。当我像这样分配/初始化 UIDynamicAnimator 时:

我游戏中的物理实体完全抵消了。即使我没有指定参考视图,物理仍然会偏移。

奇怪的是,我在一个完全独立的 ViewController 中创建 UIDynamicAnimator,所以它不像共享相同的参考视图或类似的东西。

更新:即使是像这样简单地创建 UIDynamicItemBehavior 的行为:

弄乱了我场景的物理特性。

我假设这是 SpriteKit 和 UIDynamics 共享的物理引擎的内部错误。

有人有什么建议吗?

0 投票
1 回答
1030 浏览

ios - UICollisionBehavior 的问题

我不确定我是否只是发现了一些错误,UICollisionBehavior或者我只是没有正确实施它。

我有两个主要问题。

1)定期地,我创建一个UICollisionBehavior只有两个项目的 s,一个播放器和一个新项目,该项目要么从顶部落下,要么从屏幕底部向上推。

然而,时不时地,两个项目(不是玩家)会相互碰撞。但是当我在动画器中记录碰撞时,它们都只有两个项目,播放器和下降/上升项目。

根据UICollisionBehavior类参考碰撞:

您可以向动态动画师添加多个碰撞行为。动态项目可以是任意数量的碰撞行为的一部分,前提是这些行为属于同一个动画师。例如,您可以为一组比方说蓝色的项目指定一个碰撞行为,而另一个为比如粉红色的项目指定一个碰撞行为。当您将这两种行为添加到动态动画制作器时,蓝色项目可以相互碰撞,粉红色项目可以相互碰撞,但蓝色项目和粉红色项目不会碰撞——它们会相互忽略。

使用上面的示例,我的粉红色项目和蓝色项目发生碰撞,尽管它们的碰撞行为不同。

2)点击屏幕时,我的玩家被推动UIPushBehavior,但玩家和物品之间的碰撞(下降/上升)不时被捕获。

我不知道上述问题是否相关,所以我现在将它们放在同一个问题中。

有谁知道它可能是什么?有没有人发现这是一个错误?

一如既往的感谢。

0 投票
1 回答
531 浏览

ios - UIOffsetMake() 是使用传统的左上角原点 (0,0) 还是左下角原点?

UIKit 中的视图几何体指定它作用于从左上角 (0,0) 开始的轴上,并随着您向右下角移动而增加 x 和 y。

UIOffsetMake()在 UIKit Dynamics 中被大量使用,我想知道它是否遵循类似的模型。它用于指定相对于 UIView 的中心,您希望视图被推送的点源自哪里。

如果我指定UIOriginMake(5.0, -5.0)它是否将其从中心更改为右下角?因为它垂直下降5,水平下降5?或者它是否遵循传统的 UIView 模型,这表明它水平超过 5 个点,垂直上升 5 个点?

我没有理由认为它不遵循 UIView 的模型,但我并不积极,我想确定一下。

0 投票
1 回答
3776 浏览

ios - 自动布局、UIDynamics 和动画

我对自动布局很陌生,我对如何为视图设置动画感到困惑。

我读了很多,我知道你必须遵守约束,编辑它,并将它包装layoutIfNeeded在一个UIView动画块中。

但说到做到这一点,我有点迷失了。例如,如果有人可以向我解释这个动画是如何完成的,我会很高兴。

我认为它可能使用 a将前导空间UIPanGestureRecognizer更改为容器约束,但它可能使用 UIDynamics(用于右侧的反弹效果?)。constant

0 投票
1 回答
593 浏览

ios - 如何使 UIPushBehavior 操纵的视图不旋转那么多?这是一个荒谬的数额

现在,我有一个UIPushBehavior我在视图上使用的,根据用户用UIPanGestureRecognizer. 它有效,但我的问题是视图旋转了一个荒谬的量......就像它连接到跑车的轮胎一样。

这就是我附加的方式UIPushBehavior

我不知道我应该改变什么来更多地操纵它。速度和一切都很完美,我只是不想让它旋转得那么荒谬。

0 投票
1 回答
565 浏览

ios - 如何知道推送的视图何时停止移动。UIKit 动态

我有一个UIView我应用UIPushBehavior的模式UIPushBehaviorModeInstantaneous。知道被推UIView停止移动的最简单方法是什么?

0 投票
4 回答
2686 浏览

ios - 具有 UIKit 动态的橡胶状弹力按钮

我想在我的 iOS 应用程序中创建一个类似橡胶的按钮:当用户点击按钮时,它会缩小它的框架,当用户释放点击它会增长,扩大一点,然后用弹跳效果就像它是由橡胶制成的。我在其他一些应用程序中看到了这种按钮,我很确定他们使用 iOS 7 UIKit 动态来实现这种效果。我检查了 UIKit 动态的不同行为,但它们似乎都没有用,因为它们都不会改变框架的大小。我想知道是否有关于如何实现这种行为的任何提示?

0 投票
1 回答
394 浏览

ios - 用两个 CGPoints 找到 UIPushBehavior 的角度?

我正在开发一个涉及 iOS 7 UIDyanmics 和 UIPushBehavior 的项目。作为其中的一部分,我试图根据两个 CGPoints 计算对象的角度(以弧度表示)。在我的研究中,我找到了这个答案,但它用 Java 表示。

找到两个轴承之间的角度

如果有人拥有 Objective-C 等价物,那就太棒了。

0 投票
1 回答
1163 浏览

objective-c - 我如何最好地使用 UICollisionBehavior 来检测视图何时不再出现在屏幕上?

我试图UICollisionBehavior在 UIKit Dynamics 中使用来确定我已经抛出屏幕(使用UIAttachmentBehaviorand UIPushBehavior)的视图实际上何时完全离开屏幕。

我发现它很复杂,因为我无法在它的进程中跟踪它,一旦它被抛出,我试图弄清楚UICollisionBehavior它的最后一个边缘何时与它的超级视图“碰撞”。与 NSTimer 解决方案或类似的解决方案相比,这似乎是确定它何时不在屏幕上的最简单方法(但如果你能想到任何更简单的方法,我会全力以赴!)。

我在这个项目中看到的一个解决方案(特别是这里)如下:

它计算我猜测的碰撞边界在哪里(老实说,我并不完全理解它),然后当检测到碰撞时调用委托时我调用removeFromSuperview.

但无论出于何种原因,这都非常不可靠。有时我会把它从屏幕上扔掉,它实际上永远不会以某种方式调用碰撞检测委托。通常时机也会有点晚。

就我的设置而言,它只是将 UIScrollView 扔出屏幕,其框架设置为其超级视图的边界(self.view在视图控制器中)。

有没有更好的方法来为它离开视图时设置碰撞检测?

0 投票
2 回答
484 浏览

ios - 具有非矩形边界的 UIDynamicItem

所以我正在研究 UIKit Dynamics,我遇到的一个问题是,如果我想创建一个自定义的 UIView drawRect:(例如,假设我想绘制一个三角形),似乎没有办法指定路径用于 UICollisionBehavior 的 UIView(或者更确切地说是 UIDynamicItem)。

我的目标真的是让屏幕上的多边形完全按照人们的预期相互碰撞。

我想出了一个将多个视图拼接在一起的解决方案,但这对于我想要的东西来说似乎有点过分了。

有什么简单的方法可以做到这一点,还是我真的必须将视图拼接在一起?