【发布时间】:2010-03-29 22:18:12
【问题描述】:
我最近asked a question关于子视图内的碰撞检测,有一个完美的答案。我已经到了在我的应用程序上实现碰撞的最后一点,但我遇到了一个新问题。
使用 convertRect 可以很好地从 subView 中获取 CGRect。我需要它稍微复杂一点,因为它并不完全是需要检测的矩形。
在 XCode 上,我创建了一个名为 TileViewController 的抽象类。在其他属性中,它有一个 IBOutlet UIView *detectionView; 我现在有多个继承自 TileViewController 的类,每个类都有多个嵌套在我使用 Interface Builder 创建的 detectionView 中的视图。
这个想法是一个对象可以是特定的形状或大小,我以编程方式将这些“平铺”检测点放置在每个对象的底部中心。用户可以选择一个项目并与之交互,在这种情况下移动它。
现在该方法本身在一定程度上有效,但我认为它不能正确处理嵌套值,因为检测已关闭。
此方法的简化版本有效 - 在 detectionView 本身上使用 CGRectIntersectsRect 所以我想知道我是否正在循环并正确检查视图?
我不确定它是否在同一个视图中进行比较,但我怀疑是这样,我确实在某一点稍微修改了代码,而不是比较 self.view 中的值,我将 viewController.detectView 的 UIViews 放入interactiveView.detectView 但结果是一样的。
它是被操纵的,所以子视图会改变颜色,但是当它们甚至没有触摸时它们会改变颜色,并且当它们触摸错误的 UIviews 时会改变颜色
【问题讨论】:
标签: iphone objective-c uiview collision-detection