我需要知道一个点是否在给定视图集中的一个视图中。为此,我使用了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");
有人可以告诉我我做错了吗?
谢谢,
答案 0 :(得分:1)
PointInView用于检查触摸事件是否在视图内,这意味着它与窗口有关,而与视图无关。使用curView.center是相对于视图的,因此很有可能使用它将返回false。 尝试使用CGPointMake(curView.frame.origin.x + curView.center.x,curView.frame.origin.y + curView.center.y) 这应该返回YES