dontWatchMyProfile
dontWatchMyProfile

Reputation: 46310

How to figure out if two CGRect intersect?

In -drawRect: I want to check if the provided rect intersects with anotherRect.

I'm not good at this geometry math stuff and especially at english so what I want to say is:

If you have two sheets of paper on the desk, and one of them covers the other either completely or just a small portion, it is rectsIntersect = YES.

How to check that out for rect and anotherRect?

Upvotes: 33

Views: 19023

Answers (2)

Matt Greer
Matt Greer

Reputation: 62027

Use bool CGRectIntersectsRect (CGRect rect1,CGRect rect2);

Swift 3:

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

Example: rect1.intersects(rect2)

Upvotes: 64

objc_developer
objc_developer

Reputation: 71

Try to use this.. While animating imageview you can get its actual frame by this:

[[obstacle1.layer presentationLayer] frame];

So, it will easily to make collision of two imageview

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

    NSLog(@"Collision 1");

}

Upvotes: 1

Related Questions