0

我有一个使用 TapGestureRecognizer 的视图。我将 TapGestureRecognizer 用于单击和双击事件。到目前为止,一切都很好。现在我在 View 的顶部添加了一个 ImageView ,图像视图框架是imageView.frame=CGRectMake(50,290,205,100);

现在无论我在哪里点击 View ,我的 @selectors 都会被调用。我只想跳过 ImageView 的点击事件。怎么做 ?

我尝试使用

if(recognizer.state == UIGestureRecognizerStateRecognized)
{
    CGPoint point = [recognizer locationInView:recognizer.view];
}
4

4 回答 4

2

您必须实施此检查

if(!CGRectContainsPoint(image.view.frame, point))
  {
     //Complete your Work
   }
于 2012-08-30T10:57:52.943 回答
2

这样做......我希望这会帮助你......

每当您点击屏幕时,此委托方法都会调用..

在这种方法中,请检查触摸和手势识别器将提供一些有关您的点击的数据.....基于此您可以继续......

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
    NSLog(@"%@",touch.description);
    NSLog(@"%@",gestureRecognizer.description);
}
于 2012-08-30T10:57:58.380 回答
1

您需要检查接触点,

if(!CGRectContainsPoint(image.view.frame, point))
   {
      //Do you work here
    }
于 2012-08-30T10:49:22.330 回答
1

做这个:

if(recognizer.state == UIGestureRecognizerStateRecognized)
{
    CGPoint point = [recognizer locationInView:recognizer.view];
    if(CGRectContainsPoint(imageView.frame,point)
    {
       //igonre
    }
    else
    {
      // continue
    }
}
于 2012-08-30T10:50:06.647 回答