【发布时间】:2010-10-17 09:44:46
【问题描述】:
我有一个UIView 作为容器/持有者视图。在里面我有一组UIViews(图标)
把它想象成类似于 iPhone 的 SpringBoard——你有一个 SBIconList(UIView 子类)和一组 SBIcons(也是 UIView 子类)
到目前为止,我的图标的每个图标都是可拖动的,但我在编写碰撞检测代码以检测拖动图标和另一个图标之间的碰撞时遇到问题。
到目前为止,我的基本设置是:我正在图标的touchesMoved 事件范围内编写命中测试代码。然后我“for”循环遍历容器视图的每个子视图(每个图标)并尝试CGRectContaninsPoint(currentSubviewFrame, touchPoint)。
currentSubviewFrame 是“for”循环当前循环中图标的框架。 touchPoint 是屏幕上触摸点的 x/y。
问题是因为代码是在容器子视图之一的范围内编写的,所以坐标似乎变得相对于子视图。
例如,touchPoint(全局)的坐标应该是 160,240(中心屏幕),但这个坐标是 NSLoged,比如 30,30。 (相对于 60x60 图标的中心)
currentSubviewFramex、y、width 和 height 的情况相同。
我应该提一下,这段代码必须写在子视图的touchesMoved事件范围内。
任何帮助将不胜感激。 在此先感谢:)
【问题讨论】:
标签: iphone ios objective-c uiview