如何检测两个 CALayer 是不是重叠?
Posted
技术标签:
【中文标题】如何检测两个 CALayer 是不是重叠?【英文标题】:How can i detect whether two CALayers overlap?如何检测两个 CALayer 是否重叠? 【发布时间】:2012-07-11 22:31:32 【问题描述】:在我的应用中,用户可以从一堆 CALayer 中拖动顶部的 CALayer。
当用户停止拖动时,CALayer 应该返回到其在其他 CALayer 之上的原始位置。除非 CALayer(拖动后)不再与其他 CALayer 重叠,在这种情况下,它应该在其他 CALayer 下方移动。
现在,如何检测两个 CALayer 是否重叠?
【问题讨论】:
【参考方案1】:CALayer 的 frame 属性是一个 CGRect。幸运的是,CGGeometry 有以下方法:
CGRectIntersectsRect
你会这样使用它:
if (CGRectIntersectsRect(myLayer1.frame,myLayer2.frame))
//code
【讨论】:
感谢卡恩,这帮助了我!以上是关于如何检测两个 CALayer 是不是重叠?的主要内容,如果未能解决你的问题,请参考以下文章