【问题标题】:How can i detect whether two CALayers overlap?如何检测两个 CALayer 是否重叠?
【发布时间】:2012-07-11 22:31:32
【问题描述】:

在我的应用中,用户可以从一堆 CALayer 中拖动顶部的 CALayer。

当用户停止拖动时,CALayer 应该返回到其在其他 CALayer 之上的原始位置。除非 CALayer(拖动后)不再与其他 CALayer 重叠,在这种情况下,它应该在其他 CALayer 下方移动。

现在,如何检测两个 CALayer 是否重叠?

【问题讨论】:

    标签: ios ipad


    【解决方案1】:

    CALayer 的 frame 属性是一个 CGRect。幸运的是,CGGeometry 有以下方法:

    CGRectIntersectsRect

    你会这样使用它:

    if (CGRectIntersectsRect(myLayer1.frame,myLayer2.frame)) {
    
    //code
    
    }
    

    【讨论】:

    • 感谢卡恩,这帮助了我!
    猜你喜欢
    • 2012-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-13
    • 1970-01-01
    • 1970-01-01
    • 2018-12-17
    相关资源
    最近更新 更多