我正试图检测屏幕特定区域的触摸,如果用户点击我可以做这样的事情:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
CGPoint point=[touch locationInView:myView];
NSLog(@"pointx: %f pointy:%f", point.x, point.y);
if (CGRectContainsPoint(CGRectMake(5, 5, 40, 130),point));
{
NSLog(@"touched here");
}
}
但即使我触摸屏幕上的任何地方,也会显示此消息。我希望它只在我触摸myView
时显示。
我尝试将point.x
和point.y
设置为不同的数字,但这不起作用?
我该如何解决这个问题?
答案 0 :(得分:1)
引用的代码将始终返回YES,因为您要求视图中的点,因为点在视图中可能具有负位置。要仅在视图中触摸,请使用:
if ([touch view] == myView)