对包含在 2 个单独的父 UIView 中的子视图进行碰撞检测?

Posted

技术标签:

【中文标题】对包含在 2 个单独的父 UIView 中的子视图进行碰撞检测?【英文标题】:Collision detection on sub views contained in 2 separate parent UIViews? 【发布时间】:2010-03-27 20:08:47 【问题描述】:

我最初使用 CGRectIntersectsRect 设置了一些条件来进行一些工作正常的碰撞检测。在更大范围内,我只需要检测部分视图。

所以最初在 ViewController 中它比较了 2 个 UIview。

现在我需要做的是对包含在视图控制器执行逻辑的视图中的 2 个不同 UIView 中的子视图进行碰撞检测。

我的脚本不再工作,因为我怀疑 CGRectIntersectsRect 只比较同一视图中的帧?我会继续挖掘以确认这一点。

有什么办法解决这个问题吗?例如,是否有可能获取子视图相对于执行逻辑的主视图的 x 和 y 位置?

【问题讨论】:

【参考方案1】:

您需要使用 UIView 的 convertRect:toView:convertRect:fromView:(或点等效项)将它们置于相同的坐标空间中。

【讨论】:

以上是关于对包含在 2 个单独的父 UIView 中的子视图进行碰撞检测?的主要内容,如果未能解决你的问题,请参考以下文章

uiview 作为包含 uitableview 的子视图

使用 IOS 中的约束将 UIView 中的子视图居中

以编程方式将 UIScrollView 滚动到 Swift 中的子 UIView(子视图)的顶部

从子视图中的路径对象在 UIView 中构建剪辑区域

在 UIScrollview 中获取 UIView 的子视图

缩放嵌套在 UIScrollView 中的子视图