pointInView始终返回NO

时间:2010-08-30 16:40:46

标签: iphone uiview

我需要知道一个点是否在给定视图集中的一个视图中。为此,我使用了UIView的pointInView方法,但它总是返回NO。作为一种绝望的行为,我检查了视图的中心点是否在视图内部并且它也返回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 个答案:

答案 0 :(得分:1)

PointInView用于检查触摸事件是否在视图内,这意味着它与窗口有关,而与视图无关。使用curView.center是相对于视图的,因此很有可能使用它将返回false。 尝试使用CGPointMake(curView.frame.origin.x + curView.center.x,curView.frame.origin.y + curView.center.y) 这应该返回YES