Iphone 在视图之外触摸

Iphone 在视图之外触摸,iphone,objective-c,ios,Iphone,Objective C,Ios,有人能帮我吗,这只会检测子视图内部的触摸,而不会检测主视图。您可以将UIgestureRecognitor连接到您感兴趣的视图 (一般来说,手势识别器是一种在任意视图中检测触摸的更加强大的机制,它们可以很好地与UIWebViews和UIScrollViews等倾向于吃传统触摸事件的视图配合使用。) 下面是一个片段: -(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { UITouch *touch = [touch

有人能帮我吗,这只会检测子视图内部的触摸,而不会检测主视图。

您可以将UIgestureRecognitor连接到您感兴趣的视图

(一般来说,手势识别器是一种在任意视图中检测触摸的更加强大的机制,它们可以很好地与UIWebViews和UIScrollViews等倾向于吃传统触摸事件的视图配合使用。)

下面是一个片段:

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
  UITouch *touch = [touches anyObject];
  NSLog(@"The tag %i",touch.view.tag);
  if( [touch.view isKindOfClass:[UIScrollView class]] ) {
    for( UIView *checkview in [self.view subviews] ) {
      if( [checkview tag] == 1 ) {
        infoIsVisibile = NO;
        [info removeFromSuperview];                         
      }
    }
  }
  [super touchesBegan:touches withEvent:event];
}
(此代码来自下面的链接文档——请注意self.theView可能是作为当前对象的成员存储的某个随机视图。)

你会很高兴地惊讶(或震惊)手势识别器简化了你的代码并减少了怪异

以下是苹果文档的链接:


你能更详细地解释你的问题吗?例如,这是否在自定义视图中?那景色在哪里?它是如何连接的?。。。此外,在迭代数组时不应该对数组进行变异(在这里,在迭代子视图数组时删除一个子视图)。我试图做的是,当我单击UIViewController上的按钮时,会弹出一个子视图,当我想关闭UIView时,我在UIView外部触摸,我添加了手势代码,但无论我触摸什么,它都会关闭UIView
UITapGestureRecognizer *singleFingerDTap = [[UITapGestureRecognizer alloc]
        initWithTarget:self action:@selector(handleSingleDoubleTap:)];
    singleFingerDTap.numberOfTapsRequired = 2;
    [self.theView addGestureRecognizer:singleFingerDTap];
    [singleFingerDTap release];