问题标签 [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.

0 投票
1 回答
616 浏览

ios - 重力与 UIview

UIView我在的帮助下画了一个圆圈UIBezierPath。然后我使用添加重力行为到该视图中UIGravityBehavior,并使用UICollisionBehavior. 当圆与其他对象碰撞时,这个视图会像正方形一样颠簸,但我想在碰撞中使用这个视图,就像圆一样。我该怎么做?

提供截图

0 投票
0 回答
109 浏览

objective-c - UICollisionBehavior 在横向模式下不起作用

我有两种方法,setupAnimationstartAnimating。我正在使用 UIDynamics,特别是 4 个单独UIDynamicAnimators的,4 个单独的,UIGravityBehaviors每个单独包含一个项目(因为每个项目的重力方向不同),另外一个UIDynamicAnimator包含我的所有项目和一个UICollisionBehavior.

这是我的代码:

这是我的viewWillAppear方法。我把这两种动画方法放在这里是为了尝试使用更新的横向边界,但它仍然不起作用。

我的viewDidLoad方法:

这是我的两种动画方法:

setupAnimation

startAnimating

我遇到了有关横向模式和视图边界的问题。

基本上,项目正确地出现在屏幕上,并且重力行为正确地应用于它们。但是,当它们撞到视图“墙”或边界时不会发生碰撞。我在这个视图控制器上也有一个模态展开 segue。我有一件重力向上的物品。当我在项目向上移动时点击按钮启动 segue时,我看到与视图边界发生冲突。

我怀疑这与视图控制器生命周期有关,并且未设置视图边界viewDidLoad,但我不完全确定如何修复它。请帮忙!

编辑:这是 NSLogs 显示的内容:

0 投票
0 回答
882 浏览

ios - 在 Swift 中为多个对象添加重力行为

我正在构建一个游戏,其中有很多方块漂浮在屏幕上,相互反弹,墙壁等,直到它们被摧毁。目前,我有一个主人UIGravityBehavior,我在创建每个正方形(一个UIView名为 SquareView 的类)时添加它,然后在它被销毁时将其删除。但我认为我应该在 SquareView 对象中执行此操作。以下是相关代码:

...

...

所以我相信我应该把这段代码ViewController移到我对 SquareView 类的定义中:

顺便说一句,我做同样的事情UICollisionBehavior并假设这也不是最佳的。

任何帮助都会很棒!

0 投票
1 回答
396 浏览

objective-c - 添加重力和碰撞行为后 UIViews 重叠

我正在尝试通过单击按钮来堆叠 uiviews。我还使用 UIKit 动态添加了重力和碰撞行为。从图像 ( http://pho.to/7nVJI ) 中可以看出问题是,最下面的绿色块和上面的块似乎重叠。这是 ViewDidLoad 方法:`- (void)viewDidLoad { [super viewDidLoad]; // 在加载视图后做任何额外的设置,通常是从一个 nib。

}`

以下是我如何在之前的块之上添加新块:

我如何确保这些块在堆叠时不会重叠。这种重叠会导致另一个问题,当我在右侧添加另一个类似于此的塔并将推动行为添加到绿色块以将其向右移动时,而不是仅从第二个塔移动相邻的块,它还会移动倒数第二个从第 2 塔挡住。任何指针/帮助表示赞赏。提前致谢 :)。

0 投票
1 回答
890 浏览

ios - swift ios 7中的UIDynamicAnimator

我的 iPad 应用程序有一个页面需要使用 UIDynamicAnimator 进行开发。我在下面添加了一些代码。根据我的需要,它在 iOS8 中完美运行,但在 iOS7 上失败。当强行将框架更改为弹跳时,我不会重复调用委托。

我正在使用 XCode 6.1.0,iOS7 的应用程序兼容性。基础 SDK iOS 8.1

这些在应用程序中全局共享,例如宏或其他东西,以提高可读性

提前感谢您的支持。

0 投票
1 回答
388 浏览

ios - 使用 UICollisionBehavior 设置边界

我是ios编程的初学者。当我使用 UiCollisionBehavior 设置放置项目的边界时,我将以下代码添加到 ViewController.m

但是,myView 并没有下降,只是停留在原来的位置。有人可以告诉我原因吗?

0 投票
1 回答
4619 浏览

ios - UICollisionBehavior - 视图通过边界

作为实现 UICollisionBehaviour 的一部分,我为屏幕边缘设置了边界。然后我添加了一些视图,最后将 UIPanGestureRecognizer 附加到其中一个。

现在我可以用我的可拖动视图来推动较小的视图。

锤子时间!

问题: 如果我将一个较小的视图转角并继续将其推向屏幕边缘,它最终会滑过边界并被困在另一侧。我用来打击和推动其他视图的“锤子视图”也将陷入边界。即它被卡在/不可拖动到屏幕的一侧。

我做了一个很小的例子,看看我是否可以在我的视图很少且没有冲突的行为时重现它,视图仍然跨越边界。UIDynamics 不能处理太多,或者(更有可能)我以某种方式配置错误。

下面的小例子有奇怪的行为:

}

感谢您提供的任何帮助。

0 投票
1 回答
292 浏览

ios - UICollisionBehavior 将开放路径视为封闭路径?

如果我定义一个开放的 UIBezierPath 并将其设置为碰撞边界:

然后打开重力,在“碗”内释放的物体会遵循下边界,但从碗上方释放的物体会停留在本应不存在的一侧。这是预期的行为吗?

直下坠

图中,红色矩形是从上面掉下来的;动态动画师的参考视图是浅灰色矩形。它从上面落下,停在了无形的线上。

我已经确认,如果您将贝塞尔路径翻转过来,红色矩形实际上确实尊重弯曲的边界;我也尝试过使用开放(两侧)三角形而不是弯曲路径 - 结果相同。

0 投票
1 回答
744 浏览

ios - UICollisionBehavior 边界不起作用

我在导航控制器中有一个视图。

然后我在这个视图中添加一个子视图并偏移它的原始高度,使其只覆盖屏幕的一半(另一半溢出屏幕底部)。我希望能够向上拖动这个视图,但是当它到达导航栏的底部时它会停止。

我正在使用 aUIPanGestureRecognizer来处理视图的拖动,这可以正常工作,但它似乎不会停在边界处。

这是我正在使用的代码:

但是,当我向上拖动覆盖视图时,它不会与任何边界交互,它只是直接穿过。我究竟做错了什么?是否可以使用边界来阻止用户以这种方式拖动的视图?

0 投票
1 回答
965 浏览

swift - 使用 Swift 向 UIView 添加碰撞

我正在尝试在不使用 Spritekit 的情况下在 Xcode 中制作乒乓球游戏。我正在为球和桨使用 UIVeiws。为了移动桨,我在情节提要中使用了平移手势识别器并将其连接到 UIView。

我想为桨添加碰撞,但我需要它与桨一起移动。现在,使用 addBoundaryWithIdentifier,它仅在桨位于原点时才有效。

帮助帮助!到目前为止,这是我的代码...

类视图控制器:UIViewController,UICollisionBehaviorDelegate {

}