我有一个UIImageView
,我CGPoint
在屏幕上有一个。我希望能够测试该点以查看它是否在UIImageView
. 最好的方法是什么?
问问题
26545 次
5 回答
51
CGPoint
有参考点是不行的。如果您的点在窗口的坐标中,那么您可以使用
CGPoint locationInView = [imageView convertPoint:point fromView:imageView.window];
if ( CGRectContainsPoint(imageView.bounds, locationInView) ) {
// Point lies inside the bounds.
}
您也可以调用pointInside:withEvent:
方法
if ( [imageView pointInside:locationInView withEvent:nil] ) {
// Point lies inside the bounds
}
于 2011-06-28T03:06:44.747 回答
14
在 Swift 4 中测试
view.frame.contains(point)
于 2018-03-24T22:57:46.403 回答
2
if(CGRectContainsPoint([myView frame], point))
其中 point 是您的 CGPoint 而 myView 是您的 UIImageView
于 2011-06-28T03:02:31.353 回答
2
我假设您有一个全屏窗口(我认为这很合理)。然后,您可以使用以下方法将点从窗口的坐标空间转换为 UIImageView:
CGPoint point = ...
UIWindow window = ...
UIImageView imageView = ...
CGPoint transformedPoint = [window convertPoint:point toView:imageView];
然后,您可以测试该点是否在图像视图的框架中,如下所示:
if(CGRectContainsPoint(imageView.frame, transformedPoint))
{
// do something interesting....
}
于 2011-06-28T03:05:13.767 回答
0
在斯威夫特 3
let isPointInFrame = UIScreen.main.bounds.contains(newLocation)
于 2017-05-03T11:37:08.037 回答