问题标签 [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.
ios - UIDynamicItemBehavior.density 不影响 UIFieldBehavior 中的对象物理?
我正在学习 UIDynamicAnimator(非常酷!)并建立了一个测试项目。我已经完成了工作,但在 UIFieldBehavior.linearGravityField(_:) 的物理特性中似乎没有考虑到我的对象的密度。
在 UIDynamicItemBehavior.density 的文档中它说:
动态项目的相对密度及其大小决定了它参与 UIKit 动态行为时的有效质量
以及 UIFieldBehavior.linearGravityField(_:) 的文档:
该场会产生一个定向引力,该引力均匀地应用于所有具有质量的动态项目。
和
给定物品上的力可以通过方程 F = ma 确定,其中力等于物品的质量乘以重力场施加的加速度,在这种类型的场中,重力场是恒定的。
所以我的理解是我赋予物品的密度应该会影响它们的物理特性。这不会发生 - 它们都以完全相同的速度下降:
这是我的代码。
主要风投:
还有我用来创建对象以获取所有物理的 Item 类:
在调试控制台中,我可以看到这些对象确实具有密度(分别为 0.1、100 和 10000),它似乎根本不影响事物:
我错过了什么或不理解什么?我需要一些明显的质量!
谢谢...
swift - 如何在 UITextView 中像提词器一样快速滚动文本?
我想像提词器滚动一样滚动我的文本。我已经阅读了多行UIDynamicAnimation
但不清楚UITextView
。
感谢您的建议或代码片段来实现这一点。
swift - 如何使用 UIPushBehavior 以相同的速度推送动态对象?
我不是物理专家。但是,我想移动具有动态高度(取决于内容)的 UILable ,就像提词器一样。但是当我以 10 级开始行为时,它开始移动,但突然减速,我希望以相同的速度连续向上移动。
下面是我的代码:
lblText 大小为 375*1500
swift - Swift 动态动画,后跟属性动画师
我有一个动画,我使用推送动画,然后使用快照动画UIDynamicBehavior
,然后我以属性行为结束:
基本上上面的代码做了以下事情:
- 添加推送行为
- 移除推送行为
- 添加捕捉行为
- 删除所有行为
- 添加属性转换
我想要的是执行推送操作,然后在大约一秒钟后执行快照行为,并在快照执行完成后执行转换。但是,如果我removeAllBehaviors()
在执行属性转换之前,则快照行为不会完成。但是,如果我离开快照行为并尝试执行属性转换,则它没有任何效果,因为快照行为似乎无限期地作用于对象,使其与属性转换不一致。
我如何以编程方式说完成快照行为然后执行转换?
swift - Swift UIImage 不能用重力动画
我在 Google 上查看了所有内容,但并不多。Swift 的社区真的这么小吗???
我有一张图片,在长按时,我希望它在重力作用下落下并撞到屏幕底部。
我得到的错误是
无法将“UIView”类型的值转换为预期的参数类型“[UIDynamicItem]”
我已经尝试过 UILabel、UIImage、UIImageView、Rect、UIView,但无论我做什么都会出现这个错误。我的目标是使用 UIImage 或 UIImageView。
这是我用于动画的代码:
我究竟做错了什么?在谷歌上找不到更多可以尝试的东西
ios - UICollisionBehavior 忽略屏幕边缘
我有几个 UIViews 在屏幕上不断移动。使用UICollisionBehavior
I 可以防止视图相互碰撞,但我需要它们穿过屏幕的边缘(顶部、左侧、右侧、底部)。在下面的这个例子中,一旦它们碰到屏幕的底部边缘,它们就会相互弹开,然后最终就坐在那里。我试图对 UIViews 进行子类化,并查看冲突是否仅适用于子类类型,但这不起作用。
如何防止 UIView 相互碰撞,但仍让它们穿过屏幕边缘?
子类:
代码:
ios - 方形父视图中圆形子视图之间的 UICollisionBehavior 检测
我有一个方形的 containerView,里面有一个 roundImageView。containerView 被添加到 UIDynamicAnimator。当 containerViews 的角相互碰撞时,我需要它们从 roundImageView 反弹,就像这个问题一样。在 customContainerView I 内部,override collisionBoundsType ... return .ellipse
但碰撞仍然是从正方形而不是圆形发生的,并且视图相互重叠。
自定义视图:
代码:
ios - 如何将 UICollisionBehavior 动画化为 iOS 上移动的 UIView 元素?
我正在做一个游戏,你必须用一个可轻弹的球击中一个目标。
- 目标( UIView ) 动画为 CABasicAnimation。
- 球( UIImageView) 被分配了一个动画器,它本身被分配了一个 UICollisionBehavior,包含目标和足球。
所以现在我用球击中了目标,但没有任何反应。但是,如果我击中目标的原点,则会发生碰撞:球从一个看不见的物体反弹回来,屏幕另一侧的目标移动,就像被球击中一样。
所以显然只有目标是动画的,而不是碰撞属性。我怎样才能解决这个问题?
UICollisionBehavior - 代码
CABasicAnimation - 代码
uicollectionviewlayout - 使用带有 NSDiffableDataSource 的自定义 CollectionView 布局
我正在尝试使用NSDiffableDataSource
我的自定义 CollectionView 布局。每个单元格的位置和大小取决于集合中元素的数量。它还使用 UIDynamicAnimator 来产生弹性行为。问题是当添加或删除一个新单元格时,其他单元格的布局不会改变,即使我.invalidateLayout()
在应用新快照后调用也是如此。我应该在哪里称呼它?或者,我应该使用其他方法吗?
当我使用旧的 UIDataSource 方法时,一切正常。我在重新加载我的收藏之前使布局无效
我想要更流畅地更新我的收藏,所以我转向了 DiffableDataSource 方法。但我找不到使用失效和重新计算的自定义布局的任何用法。