如何判断两个CGRect是否相交?

时间:2010-04-26 14:10:43

标签: iphone

In -drawRect:我想检查提供的矩形是否与anotherRect相交。

我不擅长这种几何数学的东西,尤其是英语,所以我想说的是:

如果桌面上有两张纸,其中一张纸完全覆盖另一张纸,或者只是一小部分,则rectsIntersect = YES。

如何检查rectanotherRect

2 个答案:

答案 0 :(得分:62)

使用bool CGRectIntersectsRect (CGRect rect1,CGRect rect2);

斯威夫特3:

public func intersects(_ rect2: CGRect) -> Bool

示例:rect1.intersects(rect2)

答案 1 :(得分:1)

尝试使用此.. 在动画图像视图时,您可以通过以下方式获得其实际帧:

[[obstacle1.layer presentationLayer] frame];

因此,很容易使两个imageview碰撞

if (CGRectIntersectsRect([[obstacle1.layer presentationLayer] frame], [[bgImageView.layer
    presentationLayer] frame])) 
{

    NSLog(@"Collision 1");

}