问题标签 [uidynamicanimator]

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 投票
0 回答
139 浏览

ios - UIDynamicItemBehavior.density 不影响 UIFieldBehavior 中的对象物理?

我正在学习 UIDynamicAnimator(非常酷!)并建立了一个测试项目。我已经完成了工作,但在 UIFieldBehavior.linearGravityField(_:) 的物理特性中似乎没有考虑到我的对象的密度。

在 UIDynamicItemBehavior.density 的文档中它说:

动态项目的相对密度及其大小决定了它参与 UIKit 动态行为时的有效质量

以及 UIFieldBehavior.linearGravityField(_:) 的文档:

该场会产生一个定向引力,该引力均匀地应用于所有具有质量的动态项目。

给定物品上的力可以通过方程 F = ma 确定,其中力等于物品的质量乘以重力场施加的加速度,在这种类型的场中,重力场是恒定的。

所以我的理解是我赋予物品的密度应该会影响它们的物理特性。这不会发生 - 它们都以完全相同的速度下降:

密度租金

这是我的代码。

主要风投:

还有我用来创建对象以获取所有物理的 Item 类:

在调试控制台中,我可以看到这些对象确实具有密度(分别为 0.1、100 和 10000),它似乎根本不影响事物:

我错过了什么或不理解什么?我需要一些明显的质量!

谢谢...

0 投票
1 回答
268 浏览

swift - 如何在 UITextView 中像提词器一样快速滚动文本?

我想像提词器滚动一样滚动我的文本。我已经阅读了多行UIDynamicAnimation但不清楚UITextView

感谢您的建议或代码片段来实现这一点。

0 投票
1 回答
119 浏览

swift - 如何使用 UIPushBehavior 以相同的速度推送动态对象?

我不是物理专家。但是,我想移动具有动态高度(取决于内容)的 UILable ,就像提词器一样。但是当我以 10 级开始行为时,它开始移动,但突然减速,我希望以相同的速度连续向上移动。

下面是我的代码:

lblText 大小为 375*1500

0 投票
0 回答
114 浏览

swift - Swift 动态动画,后跟属性动画师

我有一个动画,我使用推送动画,然后使用快照动画UIDynamicBehavior,然后我以属性行为结束:

基本上上面的代码做了以下事情:

  • 添加推送行为
  • 移除推送行为
  • 添加捕捉行为
  • 删除所有行为
  • 添加属性转换

我想要的是执行推送操作,然后在大约一秒钟后执行快照行为,并在快照执行完成后执行转换。但是,如果我removeAllBehaviors()在执行属性转换之前,则快照行为不会完成。但是,如果我离开快照行为并尝试执行属性转换,则它没有任何效果,因为快照行为似乎无限期地作用于对象,使其与属性转换不一致。

我如何以编程方式说完成快照行为然后执行转换?

0 投票
1 回答
159 浏览

ios - 如何将多个 UIDynamicItem 相互附加

我正在尝试通过UIDynamicAnimator. 我需要将圆圈相互连接并查看中心。我试图通过实现这个UIAttachmentBehavior,但似乎它不支持多个附件。结果,圆圈相互重叠:)

苹果音乐 在此处输入图像描述

我做错了什么?

0 投票
1 回答
117 浏览

swift - Swift UIImage 不能用重力动画

我在 Google 上查看了所有内容,但并不多。Swift 的社区真的这么小吗???

我有一张图片,在长按时,我希望它在重力作用下落下并撞到屏幕底部。

我得到的错误是

无法将“UIView”类型的值转换为预期的参数类型“[UIDynamicItem]”

我已经尝试过 UILabel、UIImage、UIImageView、Rect、UIView,但无论我做什么都会出现这个错误。我的目标是使用 UIImage 或 UIImageView。


这是我用于动画的代码:

我究竟做错了什么?在谷歌上找不到更多可以尝试的东西

0 投票
1 回答
21 浏览

ios - UICollisionBehavior 忽略屏幕边缘

我有几个 UIViews 在屏幕上不断移动。使用UICollisionBehaviorI 可以防止视图相互碰撞,但我需要它们穿过屏幕的边缘(顶部、左侧、右侧、底部)。在下面的这个例子中,一旦它们碰到屏幕的底部边缘,它们就会相互弹开,然后最终就坐在那里。我试图对 UIViews 进行子类化,并查看冲突是否仅适用于子类类型,但这不起作用。

如何防止 UIView 相互碰撞,但仍让它们穿过屏幕边缘?

子类:

代码:

0 投票
1 回答
62 浏览

ios - 方形父视图中圆形子视图之间的 UICollisionBehavior 检测

我有一个方形的 containerView,里面有一个 roundImageView。containerView 被添加到 UIDynamicAnimator。当 containerViews 的角相互碰撞时,我需要它们从 roundImageView 反弹,就像这个问题一样。在 customContainerView I 内部,override collisionBoundsType ... return .ellipse但碰撞仍然是从正方形而不是圆形发生的,并且视图相互重叠。

在此处输入图像描述

在此处输入图像描述

自定义视图:

代码:

0 投票
0 回答
23 浏览

ios - 如何将 UICollisionBehavior 动画化为 iOS 上移动的 UIView 元素?

我正在做一个游戏,你必须用一个可轻弹的球击中一个目标。

  • 目标( UIView ) 动画为 CABasicAnimation。
  • ( UIImageView) 被分配了一个动画器,它本身被分配了一个 UICollisionBehavior,包含目标和足球。

所以现在我用球击中了目标,但没有任何反应。但是,如果我击中目标的原点,则会发生碰撞:球从一个看不见的物体反弹回来,屏幕另一侧的目标移动,就像被球击中一样。

所以显然只有目标是动画的,而不是碰撞属性。我怎样才能解决这个问题?

UICollisionBehavior - 代码

CABasicAnimation - 代码

0 投票
0 回答
16 浏览

uicollectionviewlayout - 使用带有 NSDiffableDataSource 的自定义 CollectionView 布局

我正在尝试使用NSDiffableDataSource我的自定义 CollectionView 布局。每个单元格的位置和大小取决于集合中元素的数量。它还使用 UIDynamicAnimator 来产生弹性行为。问题是当添加或删除一个新单元格时,其他单元格的布局不会改变,即使我.invalidateLayout()在应用新快照后调用也是如此。我应该在哪里称呼它?或者,我应该使用其他方法吗?

当我使用旧的 UIDataSource 方法时,一切正常。我在重新加载我的收藏之前使布局无效

我想要更流畅地更新我的收藏,所以我转向了 DiffableDataSource 方法。但我找不到使用失效和重新计算的自定义布局的任何用法。