Подтвердить что ты не робот

Как проверить, находится ли точка в представлении

У меня есть UIImageView, и у меня есть CGPoint на экране. Я хочу проверить этот момент, чтобы узнать, находится ли он в UIImageView. Какой был бы лучший способ сделать это? Пожалуйста, помогите?

4b9b3361

Ответ 1

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
}

Ответ 2

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

где точка - это ваш CGPoint, а myView - ваш UIImageView

Ответ 3

Я предполагаю, что у вас полноэкранное окно (довольно разумно, я думаю). Затем вы можете преобразовать точку из координатного пространства окна в UIImageView, используя:

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

Затем вы можете проверить, находится ли точка в кадре изображения следующим образом:

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

Ответ 4

В Swift 3

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