问题标签 [uicollisionbehavior]
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.
ios7 - UIDynamics 和设备旋转
如果我在视图中添加任何类型的内容UIDynamicBehavior
,它会在设备旋转时完全破坏。这是纵向的(正确显示):
这里是风景,一切都坏了:
我不相信这是一个自动布局问题,因为如果我删除添加的调用UIDynamicBehavior
它可以正常工作而没有自动布局问题。也不会抛出任何自动布局错误。这是代码:
如果我重写didRotateFromInterfaceOrientation
,我可以看到顶部边界greenView
不遵循自动布局所说的(再次,删除setupCollisions
修复此问题的调用)。
上的自动布局边界greenView
是:
ios7 - UIDynamics - 碰撞问题
这是关于UIDynamics
.
我在 iPhone 屏幕上水平放置了 8 个方块。每个正方形是40 x 40。由于它们有 8 个,它们填满了320屏幕的宽度。
我想图片很清楚。现在问题来了:
当我向底部施加垂直重力时,块会像我预期的那样下降。但是当我应用横向重力(左或右)时,它们每个移动大约一到两个像素。最后一个因此移动了大约 10 个像素左右。这是为什么?
我用:
在我的代码中。
当我施加横向重力时,我希望这些块根本不会移动。
我想我不太明白如何处理运动部件之间的碰撞。
提前感谢任何提示。
ios - UICollisionBehavior:滚球?
我正在尝试使用 UIKit Dynamics 来制作物理动画的 iOS iPhone 应用程序。这是一个篮球比赛,你可以把球扔进篮筐。但是,我不知道如何使球成为圆形(由UICollisionBehavior
and以这种方式处理UIDynamicAnimator
)?
我试过了:ball.layer.cornerRadius = ball.frame.size.width / 2.0;
但这只会将球画成圆形。它实际上并非如此。我也知道我可以使用以下方法绘制边界:addBoundaryWithIdentifier:forPath:
但我不知道如何在不仅仅是一个矩形的UIView
(在我的情况下)周围设置边界?UIImageView
我知道我可以使用 SpriteKit 做到这一点,但我已经使用 UIKit Dynamics 为篮球比赛编写了几个小时的代码,如果有简单的修复,我不想切换。谢谢!
uikit-dynamics - UIKit Dynamics UICollisionBehavior 无反弹的碰撞
我有一个视图,其边界设置为碰撞(setTranslatesReferenceBoundsIntoBoundaryWithInsets
)和一个带有重力的子视图设置,以便它可以与超级视图边界发生碰撞。
我正在尝试使碰撞的弹性为 0%,但我还没有弄清楚如何。我尝试了UIDynamicItemBehavior
弹性为 0 的子视图,摩擦力也高得离谱,什么也没有。我的理由是 0 弹性已经意味着 0 力在冲击时再生,但即使是负数似乎也无济于事或对此无能为力。
关于如何使碰撞吸收所有能量或使子视图在与边界碰撞时不反弹的任何想法?
ios - 项目之间的碰撞不起作用
我在我的应用程序中使用 UIDynamics。我的应用程序有两个正方形。一个是固定的,另一个可以移动(通过应用平移手势)。当我试图碰撞它们时,它们不会碰撞。委托方法永远不会被调用。这是我的代码,我希望有人能指出问题所在。
ios - 更改 UIView 的边界并让 UICollisionBehavior 对其做出反应
是否可以更改 UIView 的边界(使用 UIAttachmentBehaviors 附加到其他一些 UIViews)并让 UICollisionBehavior 结合 UIAttachmentBehavior 响应它(就像这里的示例电影:http: //www.netwalkapps.com/ ani.mov,从而在触摸球 UIView 增长和其他球 UIViews 移开)?
谢谢!汤姆。
ios - 如何绘制一个类似于 UICollisionBehavior 的圆形 UIView?
在我的应用程序中,我目前正在绘制一个基本视图,然后我尝试使用 CAShapeLayer 将其圆角,但 UICollisionBehavior 仍然会像绘制的正方形一样做出反应。
这是我的代码示例
ios - UICollisionBehavior - UIView 碰撞的自定义形状
我试图弄清楚如何使用 UIKit Dynamics 成功地碰撞两个具有自定义边界形状的 UIView。
我能想到的解释我的问题的最基本的例子是让两个圆碰撞(考虑到它们的圆角)而不是它们的方形边界。
我确定我在某处看到过这个,但我无法从任何官方来源找到关于该主题的任何文档或讨论。
ios - UICollisionBehavior 的问题
我不确定我是否只是发现了一些错误,UICollisionBehavior
或者我只是没有正确实施它。
我有两个主要问题。
1)定期地,我创建一个UICollisionBehavior
只有两个项目的 s,一个播放器和一个新项目,该项目要么从顶部落下,要么从屏幕底部向上推。
然而,时不时地,两个项目(不是玩家)会相互碰撞。但是当我在动画器中记录碰撞时,它们都只有两个项目,播放器和下降/上升项目。
根据UICollisionBehavior
类参考碰撞:
您可以向动态动画师添加多个碰撞行为。动态项目可以是任意数量的碰撞行为的一部分,前提是这些行为属于同一个动画师。例如,您可以为一组比方说蓝色的项目指定一个碰撞行为,而另一个为比如粉红色的项目指定一个碰撞行为。当您将这两种行为添加到动态动画制作器时,蓝色项目可以相互碰撞,粉红色项目可以相互碰撞,但蓝色项目和粉红色项目不会碰撞——它们会相互忽略。
使用上面的示例,我的粉红色项目和蓝色项目发生碰撞,尽管它们的碰撞行为不同。
2)点击屏幕时,我的玩家被推动UIPushBehavior
,但玩家和物品之间的碰撞(下降/上升)不时被捕获。
我不知道上述问题是否相关,所以我现在将它们放在同一个问题中。
有谁知道它可能是什么?有没有人发现这是一个错误?
一如既往的感谢。
objective-c - 我如何最好地使用 UICollisionBehavior 来检测视图何时不再出现在屏幕上?
我试图UICollisionBehavior
在 UIKit Dynamics 中使用来确定我已经抛出屏幕(使用UIAttachmentBehavior
and UIPushBehavior
)的视图实际上何时完全离开屏幕。
我发现它很复杂,因为我无法在它的进程中跟踪它,一旦它被抛出,我试图弄清楚UICollisionBehavior
它的最后一个边缘何时与它的超级视图“碰撞”。与 NSTimer 解决方案或类似的解决方案相比,这似乎是确定它何时不在屏幕上的最简单方法(但如果你能想到任何更简单的方法,我会全力以赴!)。
它计算我猜测的碰撞边界在哪里(老实说,我并不完全理解它),然后当检测到碰撞时调用委托时我调用removeFromSuperview
.
但无论出于何种原因,这都非常不可靠。有时我会把它从屏幕上扔掉,它实际上永远不会以某种方式调用碰撞检测委托。通常时机也会有点晚。
就我的设置而言,它只是将 UIScrollView 扔出屏幕,其框架设置为其超级视图的边界(self.view
在视图控制器中)。
有没有更好的方法来为它离开视图时设置碰撞检测?