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

ios - UICollisionBehavior:滚球?

我正在尝试使用 UIKit Dynamics 来制作物理动画的 iOS iPhone 应用程序。这是一个篮球比赛,你可以把球扔进篮筐。但是,我不知道如何使球成为圆形(由UICollisionBehaviorand以这种方式处理UIDynamicAnimator)?

我试过了:ball.layer.cornerRadius = ball.frame.size.width / 2.0;

但这只会将球画成圆形。它实际上并非如此。我也知道我可以使用以下方法绘制边界:addBoundaryWithIdentifier:forPath:

但我不知道如何在不仅仅是一个矩形的UIView(在我的情况下)周围设置边界?UIImageView我知道我可以使用 SpriteKit 做到这一点,但我已经使用 UIKit Dynamics 为篮球比赛编写了几个小时的代码,如果有简单的修复,我不想切换。谢谢!

0 投票
3 回答
9966 浏览

ios - 如何在 iOS 7 中复制弹跳气泡的消息

当您在 iOS 7 中的 Messages 应用程序中进行对话时,如果您向上或向下滚动,您会注意到气泡和更多信息,因此说明何时发送消息的文本会弹回原位。

我试图在我自己的表格视图中复制它,但没有找到方法。

我假设它正在使用 UIDynamics,但我不确定如何将其与滚动和内容弹跳联系起来。

任何帮助,将不胜感激

0 投票
0 回答
38 浏览

uiimageview - 在 Sprite/Image 上设置最大 fps?

特别是在 UIImageView 上。我正在使用 IOS7 动态和“类似绳索”的动态,当我单击并拖动附加到绳索(Dragon*)上的图像时,它就像 130 FPS(只是快速)!所以我想知道是否有某种方法可以使您的图像/精灵达到您设置的“速度限制”。

就像如果 Dragon 超过了这个 FPS(或者可能是另一个测量值)让 Dragon 回到这个速度。

我希望这很清楚!感谢:D

0 投票
1 回答
556 浏览

iphone - 在 iOS 7 中复制点击相机按钮时的反弹

我一直在研究一些 UIDynamics 示例,并查看了一些 WWDC 视频,但我仍然对如何在锁定屏幕上复制该弹跳有点迷茫。我想在点击时“反弹” UIView 的 contentView。当您可以向上推以显示按钮抽屉时,有一个滑动手势,但是,我想集成一些 UIDynamics。另外,我将如何设置 UIDynamics 行为的边界?当用户向上滑动一定距离时,contentView 需要锁定到位。感谢您的任何提示。

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

iphone - UIDynamicAnimator 与 [UIView animateWithDuration:] 的交互

我正在尝试将视图设置为使用 UIDynamics 的视图中的位置。我不清楚核心动画动画和 UIDynamics 之间的交互,但我不明白正在发生的事情。

我有一个带有单个视图的视图控制器的测试项目,一个标签,它从视图的底部中间开始,我正在尝试将动画动画到顶部中间。

这只是视图顶部的一条线边界,与我的动画的开始或结束位置相去甚远。我不明白为什么它会影响按钮的动画进入其初始位置,但确实如此。

如果我注释掉 addBehaviour: 调用,那么动画效果很好。但是当我添加行为时,动画会转到错误的位置。我不明白为什么。

0 投票
2 回答
251 浏览

ios - 与运动图像的碰撞行为

我遇到了碰撞行为问题。我有 2 种类型的对象从屏幕底部落下并与屏幕底部的图像发生碰撞。碰撞效果很好,但是当我移动图像时,它会重新缩放并经常闪烁。感谢您的建议。

移动图像的代码。

}

碰撞代码。

0 投票
1 回答
737 浏览

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

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

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

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

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

0 投票
1 回答
5542 浏览

ios - 将 [UICollectionView performBatchUpdates:] 与具有 UIDynamics 的 UICollectionViewFlowLayout 一起使用

好的,基本概述。我有一个UICollectionView我需要支持通过该performBatchUpdates:方法添加和删除项目。如果我使用标准UICollectionViewFlowLayout,它工作正常。

但是,当我尝试使用UICollectionViewFlowLayout由 a 驱动的 aUIDynamicAnimator时,我一打电话就会崩溃performBatchChanges

在我的自定义UICollectionViewFlowLayout类上,该prepareForCollectionViewUpdates:方法永远不会被调用。UICollectionViewFlowLayout我使用的自定义基于此示例

崩溃后的控制台输出是...

有任何想法吗?