How to test if a point is in a view

Blane Townsend picture Blane Townsend · Jun 28, 2011 · Viewed 24.2k times · Source

I have a UIImageView and I have a CGPoint on the screen. I want to be able to test that point to see if it is in the UIImageView. What would be the best way to do this?

Answer

Deepak Danduprolu picture Deepak Danduprolu · Jun 28, 2011

CGPoint is no good with a reference point. If your point is in window's coordinates then you can get it using

CGPoint locationInView = [imageView convertPoint:point fromView:imageView.window];
if ( CGRectContainsPoint(imageView.bounds, locationInView) ) {
    // Point lies inside the bounds.
}

You may also call pointInside:withEvent: method

if ( [imageView pointInside:locationInView withEvent:nil] ) {
    // Point lies inside the bounds
}