pointInView всегда возвращает NO - PullRequest
0 голосов
/ 30 августа 2010

Мне нужно знать, является ли точка внутри одного из представлений в данном наборе представлений.Для этого я использовал метод pointInView в UIView, но он всегда возвращает NO.В качестве отчаяния я проверил, находится ли центральная точка вида внутри вида, и он также возвратил НЕТ.Вот код, который я использовал для этого:

BOOL wasPointFound = NO;
NSArray *views = [view subviews];
for (UIView *curView in views)
{
   if ([curView pointInside:curView.center withEvent:nil])
   {
      wasPointFound = YES;
      break;
   }
}

if (!wasPointFound)
   NSLog(@"NO");
else
   NSLog(@"YES");

Может кто-нибудь сказать мне, что я делаю неправильно?

1 Ответ

1 голос
/ 30 августа 2010

PointInView используется для проверки того, происходит ли событие касания внутри представления, это означает, что оно связано с окном, а не с представлением.Взятие curView.center относительно представления, поэтому есть большая вероятность, что его использование вернет falseПопробуйте использовать CGPointMake (curView.frame.origin.x + curView.center.x, curView.frame.origin.y + curView.center.y). Это должно вернуть YES

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...