问题标签 [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.
ios8 - iOS9 的 UICollisionBehavior 似乎停止了距离边界 1.5 点的距离:我的 bug 还是 Apple 的?
在我的应用程序中,我使用包含 UICollisionBehavior 的 UIKit Dynamics 在打开和关闭时让菜单弹跳。我用于此的代码如下。这在 iOS8 上运行良好。但是,对于 iOS9(包括刚刚发布的 iOS9.1 beta 2),我发现了一个奇怪的问题。从表面上看,我用这个弹跳动画弹跳的菜单在打开然后关闭后并没有完全关闭。仔细观察,我发现 UICollisionBehavior 的边界在 iOS8 和 iOS9 中使用相同的值计算。
菜单打开碰撞边界:(798,330) to (1024,330)
它表示屏幕上的一条线,菜单底部在打开和弹跳后最终应该停留的位置。
菜单关闭碰撞边界:(798,-280) to (1024,-280)
代表屏幕外的一条线,菜单顶部在关闭和弹跳后最终应该停留在哪里。
问题出现在 iOS9 中,菜单 UIView 实际上并没有最终停留在这些边界上。打开后,iOS9的菜单框是这样的:
(798, -1.5; 226, 330)
[这是:(x,y;w,h)]
关闭后,菜单框架如下所示:
(798, -278.5; 226, 330)
但是,这实际上应该是:
(798, 0; 226, 330)
(打开后)
(798, -280; 226, 330)
(关闭后)
还有其他人看到 iOS9 和碰撞行为的这些问题吗?
我即将在我的代码中添加一个 hack(在下面搜索“HACK”),我将在 iOS9 中选择它,但我真的不喜欢这些 hack!
弹跳动画.h
弹跳动画.m
ios - 在 iOS 9 中设置 UIView 的碰撞边界路径
在 iOS 9 中,Apple 引入collisionBoundsType
了UIKit-Dynamics
.
设置此选项UIDynamicItemCollisionBoundsTypeRectangle
或将其设置为UIDynamicItemCollisionBoundsTypeEllipse
.
下面的屏幕截图来自我正在制作的游戏,其中collisionBoundsType
玩家的 设置为矩形,球设置为椭圆:
但是,当我将玩家设置collisionBoundsType
为路径时,我会出现奇怪的行为,如下所示:
视图看起来比它应该的高,并且碰撞体在它应该在的位置的右侧。
目前我已经collisionBoundingPath
设置为:
此外,我的 drawRect 函数如下所示:
为什么会这样?如何将碰撞体的路径设置为与视图中的绘图相同?
此外,红色只是视图的背景(即view.backgroundColor = [UIColor redColor];
)。
ios - CollisionBehaviour 不适用于自动布局
我正在尝试实现两个视图之间的冲突。
firstView
是带有文本字段的视图。如果某些文本字段成为 firstRecognizer 和键盘框架重叠firstView
。它向上移动,如果firstView
与 碰撞secondView
,它也应该向上推。但这不会发生。而是firstView
向上移动直到碰撞,secondView
然后放回旧位置。
这里的代码,我使用:
有人可以告诉我的错误吗?或者,可能有人知道更好的解决方案?
ios - Swift 中的 UI 碰撞
我需要在 Swift 语言的单视图应用程序中制作一个 Breakout 应用程序。但是,我无法让“球”对击中障碍做出反应。此外,我无法让障碍物在被击中后消失。有没有人对此有解决方案,或者有没有人有我可以查看的示例应用程序?这是在单视图应用程序中,而不是 Sprite。
swift - 没有调用 CollisionBehavior
我一直试图让这个 CollisionBehavior 函数运行。
如您所见,我尝试了两种碰撞行为方法。球和块都是动态对象,我将屏幕末端作为边界。所以每次一个方块或“球”撞到另一个方块、桨、球或屏幕末端时,它应该打印“碰撞”,但终端上不会打印任何内容。下面是块、球、桨和边界的代码。
桨:
球:
块和屏幕结束(边界):
谢谢你的帮助
ios - 什么是“参考系统”?
iOS 实例属性的文档UICollisionBehavior translatesReferenceBoundsIntoBoundary
有描述
“指定基于参考系统的边界是否处于活动状态。”
什么是参考系统?我不明白界限与什么有关-但我想如果我知道“参考系统”是什么意思,我可能会。
ios - UICollisionBehavior 仅与背景视图碰撞
在我的 ViewController 中,我有一个背景视图和一堆碰撞视图。我在这些碰撞视图中添加了重力行为,这样它们就会从原来的位置落下。但我想让这些视图在到达屏幕底部时停止下降。所以我为每个碰撞视图添加了碰撞行为。同时,我不希望它们相互碰撞。换句话说,每个碰撞视图都可以与其他碰撞视图重叠。我努力了
但它不起作用,我想我使用了错误的方法。那么我该如何实现呢?
swift - 组成员之间的 Swift Xcode 冲突,但不是组
我在一个单一的视图应用程序中,我已经设置了碰撞行为。我有两个不同的数组或 UIView 组。我希望同一组的成员相互碰撞,但不同组的成员相互通过。我怎样才能做到这一点?
ios - 在接触障碍物时调用函数,但不碰撞。可能吗?
我想知道当 UIView 与碰撞边界接触时是否可以调用函数,但不能让它们实际发生碰撞。
当它们接触并让视图直接穿过边界时,是否可以调用函数?
如果是这样,怎么做?
swift - Can collisionmode be set to nothing?
UiCollisionBehavior has four collision modes: 1. Items 2. Boundaries 3. Init(rawValue: UInt) 4. Everything
Is it possible to set collisionmode to nothing?