iphone xcode uiview position cgpoint

iphone - Cómo probar si un punto está en una vista



xcode uiview (4)

Tengo un UIImageView y tengo un CGPoint en la pantalla. Quiero poder probar ese punto para ver si está en el UIImageView. Cuál sería la mejor forma de hacer esto? ¿Por favor ayuda?


Asumo que tienes una ventana de pantalla completa (bastante razonable, creo). Luego puede transformar el punto del espacio de coordenadas de la ventana al UIImageView usando:

CGPoint point = ... UIWindow window = ... UIImageView imageView = ... CGPoint transformedPoint = [window convertPoint:point toView:imageView];

Luego, puede probar si el punto está en el marco de la vista de la imagen de la siguiente manera:

if(CGRectContainsPoint(imageView.frame, transformedPoint)) { // do something interesting.... }


CGPoint no es bueno con un punto de referencia. Si su punto está en las coordenadas de la ventana, puede obtenerlo usando

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

También puede llamar a pointInside:withEvent: method

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


if(CGRectContainsPoint([myView frame], point))

donde punto está tu CGPoint y myView es tu UIImageView


En Swift 3

let isPointInFrame = UIScreen.main.bounds.contains(newLocation)