【发布时间】:2012-07-11 22:31:32
【问题描述】:
在我的应用中,用户可以从一堆 CALayer 中拖动顶部的 CALayer。
当用户停止拖动时,CALayer 应该返回到其在其他 CALayer 之上的原始位置。除非 CALayer(拖动后)不再与其他 CALayer 重叠,在这种情况下,它应该在其他 CALayer 下方移动。
现在,如何检测两个 CALayer 是否重叠?
【问题讨论】:
在我的应用中,用户可以从一堆 CALayer 中拖动顶部的 CALayer。
当用户停止拖动时,CALayer 应该返回到其在其他 CALayer 之上的原始位置。除非 CALayer(拖动后)不再与其他 CALayer 重叠,在这种情况下,它应该在其他 CALayer 下方移动。
现在,如何检测两个 CALayer 是否重叠?
【问题讨论】:
CALayer 的 frame 属性是一个 CGRect。幸运的是,CGGeometry 有以下方法:
CGRectIntersectsRect
你会这样使用它:
if (CGRectIntersectsRect(myLayer1.frame,myLayer2.frame)) {
//code
}
【讨论】: