问题标签 [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 投票
1 回答
524 浏览

ios - 我正在努力实现 UIDynamicBehavior 的子类

我正在尝试UIView在屏幕上移动 a 。

UIGravityBehavior两者UIPushBehavior都考虑了密度、速度和摩擦力等因素。我试图实现我自己的忽略那些物理的动态行为。

我的UIDynamicBehavior子类和一些基本实现

我正在尝试从记忆中重新创建它,我认为基础知识就在这里

无论如何,我从文档中得到的印象是 action 属性是我需要实现动画的地方。然而,看起来我的黑色动作从未被调用过。

是我最接近解决方案的方法,但我还没有解决这个问题。

我错过了什么?为什么我的自定义UIDynamicBehavior子类不起作用?

0 投票
0 回答
1792 浏览

ios - 是否可以在不删除和添加 UIDynamicBehaviours 的情况下暂停 UIDynamicAnimator?

我正在使用 UIDynamics 实现一些动画,以在视图之间启用一些基于物理的转换。我想以编程方式暂停并继续这些动画以响应用户触摸。到目前为止,我发现这样做的唯一方法是从动态动画师中删除行为,然后像这样重新添加它们:

(旁白:我也使用[self.dynamicAnimator updateItemUsingCurrentState: item]而不是重新创建行为,但我仍然必须从动态动画制作器中删除它们并再次重新添加它们,以便在用户触摸屏幕时暂停。)

我想做的是self.dynamicAnimator.running = NO暂停,然后self.dynamicAnimator.running = YES继续。这会更整洁,涉及的代码更少(我目前有五种行为可以做到这一点),并且有助于避免过程中的潜在错误。不幸的是,该dynamicAnimator.running属性是只读的,所以这是不可能的。

有没有办法在我错过的一两行中暂停和继续 UIDynamicAnimator?

0 投票
4 回答
751 浏览

ios - 带有附件和推送行为的 UIDynamicKit 会导致较长的振荡时间

我刚刚开始使用 UIDynamic 工具包,并在网上遵循了示例。我已经实现了我想要的行为,即视图接收到一个方向的瞬时力并弹回原点。

我使用下面的代码实现了这一点

但是,它最终会在 1 或 2 个像素上振荡很长时间。改变频率和阻尼值似乎并没有使这变得更好或更糟。

有没有其他人经历过这个?

非常感谢。

0 投票
1 回答
703 浏览

ios - UICollisionBehavior 内存泄漏

我遇到了我认为是UICollisionBehaviorin的错误UIKit。将它们添加到数组UIViews会导致内存泄漏。我整理了一个简单的演示项目,该项目创建了 10 个动画,其中一组视图在重力作用下下落,并与封闭视图的边界发生碰撞。(代码如下。) Instruments 中的 Leaks 模板每次运行报告 9 个 64 字节的泄漏。

我真的很希望能够在我正在开发的应用程序中实现碰撞,但是这种泄漏使它无法使用。我已经尝试将碰撞行为保存在属性中并重用它。这可以防止泄漏除了一个 64 字节的内存块之外的所有内存,但是当它完成时冲突不再起作用。任何人都可以提出一个可行的解决方法吗?

0 投票
1 回答
894 浏览

objective-c - 在 iOS 7 中发生碰撞后添加 UIGravityBehavior 和 UIPushBehavior

我正在搞乱 iOS 7 中的新物理 API。

我决定做一个简单的游戏,我有一个角色,他可以通过手指轻敲在屏幕上移动,周期性地,形状从底部飞起来,如果它们击中角色,游戏就结束了。

我已经实现了上述所有功能,并且效果很好,但是,唯一没有的是当形状与角色碰撞时角色会掉落。

所有碰撞都有效,我的问题是试图让角色在碰撞发生时摔倒。因为我不希望角色在此之前跌落(假设他在试图避开形状时悬浮)我决定在碰撞发生时将角色添加到重力中,确实如此,但首先,角色射击随着碰撞动画的继续向上。

有什么办法可以防止碰撞动画的发生吗?有没有更好的办法?

这是我在collisionBehavior:beganContactForItem:withBoundaryIdentifier:atPoint:方法中的代码:

0 投票
1 回答
1024 浏览

ios - UIKit Dynamics 不允许我为 UIView 的中心设置动画

我有一个UIView附加到一个UICollisionBehavior. 当在屏幕上点击新位置时,我正在尝试为其中心设置动画,但使用此代码块似乎不是这样做的方法:

谁能建议一种对 UIKitDynamics 更友好的方式来做到这一点?

谢谢。

更新

因此,我的问题的第一部分与发布的问题相似,并且可能重复,但是,尽管从技术上讲它解决了该问题第一部分中的问题,但它似乎确实干扰了UICollisionBehavior.

这个问题的第二部分是询问是否有更好的方法来做到这一点。我认为可以UIDynamicItem在给定的时间内以一定的速度加速 a ,UIPushBehavior但它似乎是恒定的。

谁能推荐如何使用 aUIPushBehavior来执行上述操作?

0 投票
1 回答
1322 浏览

ios - 使用 UIAttachmentBehavior 和自动布局约束拖动 UIView

UIScrollView在 IB 中有一个带有自动布局的设置,其中包含一个UIImageView. 您可以查看 Evgenii 的 Github 存储库,了解它是如何设置的:https ://github.com/evgenyneu/ios-imagescroll

滚动视图用于启用捏合缩放。我希望能够UIPanGestureRecognizer使用 new移动滚动视图UIAttachmentBehavior。这在没有自动布局的情况下效果很好,但是启用自动布局后,滚动视图内容会闪烁并且滚动视图会失真。

我的猜测是设置为滚动和图像视图的约束会干扰附件行为,contentSize滚动视图的约束也取决于其内容和约束。

任何想法如何得到这个工作将不胜感激。

编辑:使用普通视图而不是 scrollView/imageView 组合进行测试,并且存在相同的问题。因此,使用UIAttachmentBehavior自动布局进行平移必须是一个问题。

0 投票
1 回答
2864 浏览

ios - 如何加快 UISnapBehavior?

通过添加具有阻力的 UIDynamicItemBehavior,我可以轻松地使捕捉变慢。但是,阻力的默认值是 0.0,这对我来说仍然太慢了。将阻力设置为负值没有效果,它的移动速度似乎快到 0.0。

如何使 UISnapBehavior 更快?

(这里是一个让捕捉变慢的例子):

0 投票
1 回答
235 浏览

ios - 将矩形按钮框架剪切到图像蒙版以与 UIDynamics 一起使用

我的屏幕上有三个按钮,它们在情节提要中设置了背景图像,背景图像是六边形。我目前正在玩重力,当按下按钮时,我希望它们全部落到屏幕底部。我希望按钮在相互反弹时像六边形一样做出反应,而不是像矩形一样。

有没有办法将 UIButtons.frame 剪辑到 hexagonal.png?

我试过谷歌搜索无济于事。任何帮助是极大的赞赏。

0 投票
1 回答
3577 浏览

ios - UICollisionBehavior - UIView 碰撞的自定义形状

我试图弄清楚如何使用 UIKit Dynamics 成功地碰撞两个具有自定义边界形状的 UIView。

我能想到的解释我的问题的最基本的例子是让两个圆碰撞(考虑到它们的圆角)而不是它们的方形边界。

我确定我在某处看到过这个,但我无法从任何官方来源找到关于该主题的任何文档或讨论。