问题标签 [uidynamicbehavior]

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 投票
3 回答
1415 浏览

ios7 - UIDynamics 和设备旋转

如果我在视图中添加任何类型的内容UIDynamicBehavior,它会在设备旋转时完全破坏。这是纵向的(正确显示):

正确布局

这里是风景,一切都坏了:破碎的布局

我不相信这是一个自动布局问题,因为如果我删除添加的调用UIDynamicBehavior它可以正常工作而没有自动布局问题。也不会抛出任何自动布局错误。这是代码:

如果我重写didRotateFromInterfaceOrientation,我可以看到顶部边界greenView不遵循自动布局所说的(再次,删除setupCollisions修复此问题的调用)。

上的自动布局边界greenView是:

0 投票
2 回答
2199 浏览

ios7 - 减慢 UISnapBehavior

我正在使用 UISnapBehavior,但我喜欢它的捕捉速度太快了。有没有办法让它慢下来?或者换句话说:有没有办法调整对象的弹性与它应该捕捉到的点?

0 投票
1 回答
413 浏览

ios7 - UIDynamics - 碰撞问题

这是关于UIDynamics.

我在 iPhone 屏幕上水平放置了 8 个方块。每个正方形是40 x 40。由于它们有 8 个,它们填满了320屏幕的宽度。

我想图片很清楚。现在问题来了:

当我向底部施加垂直重力时,块会像我预期的那样下降。但是当我应用横向重力(左或右)时,它们每个移动大约一到两个像素。最后一个因此移动了大约 10 个像素左右。这是为什么?

我用:

在我的代码中。

当我施加横向重力时,我希望这些块根本不会移动。
我想我不太明白如何处理运动部件之间的碰撞。

提前感谢任何提示。

0 投票
3 回答
4948 浏览

ios - 当 UIGravityBehavior 处于活动状态时,UIDynamicAnimator 拒绝达到平衡

我正在编写可扩展托盘视图的代码,该视图使用 UIDynamicAnimator 来实现漂亮的展开/收缩动画。

为了实现逼真的加速效果,我使用UIGravityBehavior我的托盘掉落,直到托盘的“标签”碰到屏幕底部。

这很好用,但即使场景中的所有项目都停止移动,UIDynamicAnimatorDelegate dynamicAnimatorDidPause:也不会被调用。这意味着动画师继续使用 CPU 周期为场景设置动画(委托已设置,并为 触发UIDynamicAnimatorDelegate dynamicAnimatorDidPause:)。

我尝试UIGravityBehavior从场景中删除,这确实导致动画师最终停止。不过,我无法确定移除重力行为的正确时间,因为一旦一切停止移动,我就需要将其从场景中移除。

我知道重力是一个恒定的力,但我仍然认为一旦一切都具有 0 速度和 0 加速度,它会停止动画师。

最后一个假设是错误的吗?

任何人有类似的问题?

0 投票
1 回答
2883 浏览

ios - UIDynamics:春天

我正在尝试在iOS我正在开发的应用程序中创建一些动画。我有一个盒子会掉下来,直到它撞到一个酒吧。我还在框中添加了一个bounce对栏的影响。我现在要添加的是杆上的一种行为,因此当盒子碰到杆时,反应是轻微的弹簧。我尝试添加一个UIAttachmentBehavior但无法弄清楚如何正确实现它。我已经看过WWDC视频和其他视频,但我无法让它在这个设置中工作。如果你能在这个例子中告诉我如何实现它,那就太好了。

在此处输入图像描述


0 投票
0 回答
164 浏览

ios - UIDynamicBehavior 是否只移动整个视图,还是会影响 contentOffset?

我很难理解UIDynamicBehaviors

我正在尝试将 a 添加UISnapBehavior到 a UIScrollView,并且众所周知,UIScrollViews行为方式是在用户与其交互时更改contentOffset它,但是当我添加 时UISnapBehavior,整个UIScrollView画面都会飞出。

我不会粘贴任何代码,因为我希望我误解了一些基本的东西,所以:

我怎样才能让 aUIDynamicBehavior/UISnapBehavior只影响contentOffseta UIScrollView

0 投票
1 回答
160 浏览

ios - UIAttachment 在 iOS 7 中不起作用

我有以下代码,它只是将密码附加UITextFieldanchorPoint. 当我运行它时,什么也没有发生。

0 投票
1 回答
1542 浏览

ios - 将 CGAffineTransformScale 与 UIAttachmentBehavior (UIDynamicAnimator) 一起使用

在 UIButton 的一个子类中,我将 UIButton 附加到 UIAttachmentBehavior,它允许用户用手指在屏幕上拖动按钮。

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event我将按钮添加到 UIAttachmentBehavior,然后将行为添加到 UIDynamicAnimator。在- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event我将 UIAttachmentBehavior 的锚点更新为触摸点期间;这将创建所需的拖动效果。

现在我希望使用 CGAffineTransformScale 在触摸开始时增加按钮的大小,以便用户可以看到他们手指下的按钮。我的问题是,我使用 CGAffineTransformScale 应用的转换在我添加附件行为的第二次被立即覆盖。结果是按钮快速闪烁放大,但随后又恢复到原始大小。

[_animator removeAllBehaviors]在应用 CGAffineTransformScale 之前尝试过,然后将行为添加回来。[_animator updateItemUsingCurrentState:self]在应用 CGAffineTransformScale 之后,在添加附件行为之前,我也尝试过。既不能解决问题。

更新 1:考虑到下面 HalR 的回答,我决定尝试在每次触摸时应用比例变换。因此,我将 CGAffineTransformScale 调用添加到touchesMoved:touchesEnded。我正在使用 CGAffineTransformScale 与 CGAffineTransformMakeScale,因为它允许我保留附件行为添加的轻微旋转。它让我更接近了。该按钮现在在缩放时在屏幕上移动。虽然它并不完美。当您不在屏幕上移动时会出现闪烁,如果您停止移动,但按住触摸,按钮将恢复到原始大小。差不多了……有什么建议吗?

这是我更新的代码:

0 投票
3 回答
4294 浏览

uikit-dynamics - UIKit Dynamics UICollisionBehavior 无反弹的碰撞

我有一个视图,其边界设置为碰撞(setTranslatesReferenceBoundsIntoBoundaryWithInsets)和一个带有重力的子视图设置,以便它可以与超级视图边界发生碰撞。

我正在尝试使碰撞的弹性为 0%,但我还没有弄清楚如何。我尝试了UIDynamicItemBehavior弹性为 0 的子视图,摩擦力也高得离谱,什么也没有。我的理由是 0 弹性已经意味着 0 力在冲击时再生,但即使是负数似乎也无济于事或对此无能为力。

关于如何使碰撞吸收所有能量或使子视图在与边界碰撞时不反弹的任何想法?

0 投票
1 回答
737 浏览

ios - 如何用 UIGravityBehavior 停止某些事情?

我有一些使用 UIDynamicAnimation 的 UIView,特别是 UIGravityBehavior。我需要知道如何让他们随时停止和启动。

我一直在尝试手动设置行为属性的各种组合,例如将重力设置为 0、0,或者分别将幅度和矢量设置为 0,甚至一次将所有这些加上角度设置为 0 ,而事情只是继续前进。

我可以将它们移动到不同的位置,但它们只是保持以前的动力并继续移动。

我能想到的最后一件事是从行为中完全删除视图,但是我需要在很多不同的时间停止和启动,这看起来非常非常笨拙。这是唯一的方法吗?