检测屏幕特定区域的触摸

时间:2010-06-26 06:08:29

标签: iphone iphone-sdk-3.0

我正试图检测屏幕特定区域的触摸,如果用户点击我可以做这样的事情:

- (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.xpoint.y设置为不同的数字,但这不起作用? 我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

引用的代码将始终返回YES,因为您要求视图中的点,因为点在视图中可能具有负位置。要仅在视图中触摸,请使用:

if ([touch view] == myView)