问题标签 [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.
ios - 我正在努力实现 UIDynamicBehavior 的子类
我正在尝试UIView
在屏幕上移动 a 。
UIGravityBehavior
两者UIPushBehavior
都考虑了密度、速度和摩擦力等因素。我试图实现我自己的忽略那些物理的动态行为。
我的UIDynamicBehavior
子类和一些基本实现
我正在尝试从记忆中重新创建它,我认为基础知识就在这里
无论如何,我从文档中得到的印象是 action 属性是我需要实现动画的地方。然而,看起来我的黑色动作从未被调用过。
这是我最接近解决方案的方法,但我还没有解决这个问题。
我错过了什么?为什么我的自定义UIDynamicBehavior
子类不起作用?
ios - 是否可以在不删除和添加 UIDynamicBehaviours 的情况下暂停 UIDynamicAnimator?
我正在使用 UIDynamics 实现一些动画,以在视图之间启用一些基于物理的转换。我想以编程方式暂停并继续这些动画以响应用户触摸。到目前为止,我发现这样做的唯一方法是从动态动画师中删除行为,然后像这样重新添加它们:
(旁白:我也使用[self.dynamicAnimator updateItemUsingCurrentState: item]
而不是重新创建行为,但我仍然必须从动态动画制作器中删除它们并再次重新添加它们,以便在用户触摸屏幕时暂停。)
我想做的是self.dynamicAnimator.running = NO
暂停,然后self.dynamicAnimator.running = YES
继续。这会更整洁,涉及的代码更少(我目前有五种行为可以做到这一点),并且有助于避免过程中的潜在错误。不幸的是,该dynamicAnimator.running
属性是只读的,所以这是不可能的。
有没有办法在我错过的一两行中暂停和继续 UIDynamicAnimator?
ios - 带有附件和推送行为的 UIDynamicKit 会导致较长的振荡时间
我刚刚开始使用 UIDynamic 工具包,并在网上遵循了示例。我已经实现了我想要的行为,即视图接收到一个方向的瞬时力并弹回原点。
我使用下面的代码实现了这一点
但是,它最终会在 1 或 2 个像素上振荡很长时间。改变频率和阻尼值似乎并没有使这变得更好或更糟。
有没有其他人经历过这个?
非常感谢。
ios - UICollisionBehavior 内存泄漏
我遇到了我认为是UICollisionBehavior
in的错误UIKit
。将它们添加到数组UIViews
会导致内存泄漏。我整理了一个简单的演示项目,该项目创建了 10 个动画,其中一组视图在重力作用下下落,并与封闭视图的边界发生碰撞。(代码如下。) Instruments 中的 Leaks 模板每次运行报告 9 个 64 字节的泄漏。
我真的很希望能够在我正在开发的应用程序中实现碰撞,但是这种泄漏使它无法使用。我已经尝试将碰撞行为保存在属性中并重用它。这可以防止泄漏除了一个 64 字节的内存块之外的所有内存,但是当它完成时冲突不再起作用。任何人都可以提出一个可行的解决方法吗?
objective-c - 在 iOS 7 中发生碰撞后添加 UIGravityBehavior 和 UIPushBehavior
我正在搞乱 iOS 7 中的新物理 API。
我决定做一个简单的游戏,我有一个角色,他可以通过手指轻敲在屏幕上移动,周期性地,形状从底部飞起来,如果它们击中角色,游戏就结束了。
我已经实现了上述所有功能,并且效果很好,但是,唯一没有的是当形状与角色碰撞时角色会掉落。
所有碰撞都有效,我的问题是试图让角色在碰撞发生时摔倒。因为我不希望角色在此之前跌落(假设他在试图避开形状时悬浮)我决定在碰撞发生时将角色添加到重力中,确实如此,但首先,角色射击随着碰撞动画的继续向上。
有什么办法可以防止碰撞动画的发生吗?有没有更好的办法?
这是我在collisionBehavior:beganContactForItem:withBoundaryIdentifier:atPoint:
方法中的代码:
ios - UIKit Dynamics 不允许我为 UIView 的中心设置动画
我有一个UIView
附加到一个UICollisionBehavior
. 当在屏幕上点击新位置时,我正在尝试为其中心设置动画,但使用此代码块似乎不是这样做的方法:
谁能建议一种对 UIKitDynamics 更友好的方式来做到这一点?
谢谢。
更新
因此,我的问题的第一部分与发布的问题相似,并且可能重复,但是,尽管从技术上讲它解决了该问题第一部分中的问题,但它似乎确实干扰了UICollisionBehavior
.
这个问题的第二部分是询问是否有更好的方法来做到这一点。我认为可以UIDynamicItem
在给定的时间内以一定的速度加速 a ,UIPushBehavior
但它似乎是恒定的。
谁能推荐如何使用 aUIPushBehavior
来执行上述操作?
ios - 使用 UIAttachmentBehavior 和自动布局约束拖动 UIView
我UIScrollView
在 IB 中有一个带有自动布局的设置,其中包含一个UIImageView
. 您可以查看 Evgenii 的 Github 存储库,了解它是如何设置的:https ://github.com/evgenyneu/ios-imagescroll
滚动视图用于启用捏合缩放。我希望能够UIPanGestureRecognizer
使用 new移动滚动视图UIAttachmentBehavior
。这在没有自动布局的情况下效果很好,但是启用自动布局后,滚动视图内容会闪烁并且滚动视图会失真。
我的猜测是设置为滚动和图像视图的约束会干扰附件行为,contentSize
滚动视图的约束也取决于其内容和约束。
任何想法如何得到这个工作将不胜感激。
编辑:使用普通视图而不是 scrollView/imageView 组合进行测试,并且存在相同的问题。因此,使用UIAttachmentBehavior
自动布局进行平移必须是一个问题。
ios - 如何加快 UISnapBehavior?
通过添加具有阻力的 UIDynamicItemBehavior,我可以轻松地使捕捉变慢。但是,阻力的默认值是 0.0,这对我来说仍然太慢了。将阻力设置为负值没有效果,它的移动速度似乎快到 0.0。
如何使 UISnapBehavior 更快?
(这里是一个让捕捉变慢的例子):
ios - 将矩形按钮框架剪切到图像蒙版以与 UIDynamics 一起使用
我的屏幕上有三个按钮,它们在情节提要中设置了背景图像,背景图像是六边形。我目前正在玩重力,当按下按钮时,我希望它们全部落到屏幕底部。我希望按钮在相互反弹时像六边形一样做出反应,而不是像矩形一样。
有没有办法将 UIButtons.frame 剪辑到 hexagonal.png?
我试过谷歌搜索无济于事。任何帮助是极大的赞赏。
ios - UICollisionBehavior - UIView 碰撞的自定义形状
我试图弄清楚如何使用 UIKit Dynamics 成功地碰撞两个具有自定义边界形状的 UIView。
我能想到的解释我的问题的最基本的例子是让两个圆碰撞(考虑到它们的圆角)而不是它们的方形边界。
我确定我在某处看到过这个,但我无法从任何官方来源找到关于该主题的任何文档或讨论。