2015-04-23 63 views
2

所以我有一个主页视图,人们看到他们第一次启动应用程序时,它有几个不同的选项。昨天我添加了一个教程覆盖,所以他们第一次打开应用程序时,我有一个0.5 alpha alpha视图,并且在其他视图上全屏显示,此视图具有白色文本和箭头指向页面上的函数。我在这个视图中附加了一个轻击手势识别器,其操作是调用下一个教程屏幕(共3个)。后缀全部隐藏,应用程序正常运行。除了即使我的视图是全屏,选中了用户交互启用和手势点击识别器之外,这一切都能正常工作,但子视图上的手势/触摸仍然有效。所以如果我只是点击应用程序上的一些空白区域,教程和点击手势按预期工作,循环浏览页面等。但是,如果我不小心按子视图按钮或从子视图做手势,它会做的动作(带你到一个新的一页或w/e)Xcode iOS UIView允许在子视图上输入的点击手势

所以基本上,据我可以告诉我的观点,尽管是另一个顶部,并有一个轻拍手势识别器附加到视图的子视图仍然被按下,任何想法?

+0

禁用的手势,因为你加点触手势到你的主视图它的所有子视图都会得到这个手势。 – Vaisakh

+0

有没有办法来禁用或重写它? – CMOS

回答

1

检查做任何操作之前水龙头事件视图..

- (IBAction)yourTapEvent:(UITapGestureRecognizer *)gestureRecognizer 
    { 
     UIView *piece = [gestureRecognizer view]; 

     if(piece == (view on which you have added gesture)) 
     { 
      //Do your necessary operation 
     } 

    } 
0

试试这个,这将有助于你在它的子视图

- (void)tapAction:(UITapGestureRecognizer *) gestureRecognizer{ 
     UIView *v = [gestureRecognizer view];// Guesture added view 
     NSArray *temp = [self.view subviews]; 
     for (int i = 0; i<temp.count; i++) { 
      if([temp objectAtIndex:i]== v){ 
       // Do your swipe tap action here 
      } 
     } 
    }