Xcode iOS UIView允许在子视图上输入的点击手势
问题描述:
所以我有一个主页视图,人们看到他们第一次启动应用程序时,它有几个不同的选项。昨天我添加了一个教程覆盖,所以他们第一次打开应用程序时,我有一个0.5 alpha alpha视图,并且在其他视图上全屏显示,此视图具有白色文本和箭头指向页面上的函数。我在这个视图中附加了一个轻击手势识别器,其操作是调用下一个教程屏幕(共3个)。后缀全部隐藏,应用程序正常运行。除了即使我的视图是全屏,选中了用户交互启用和手势点击识别器之外,这一切都能正常工作,但子视图上的手势/触摸仍然有效。所以如果我只是点击应用程序上的一些空白区域,教程和点击手势按预期工作,循环浏览页面等。但是,如果我不小心按子视图按钮或从子视图做手势,它会做的动作(带你到一个新的一页或w/e)Xcode iOS UIView允许在子视图上输入的点击手势
所以基本上,据我可以告诉我的观点,尽管是另一个顶部,并有一个轻拍手势识别器附加到视图的子视图仍然被按下,任何想法?
答
检查做任何操作之前水龙头事件视图..
- (IBAction)yourTapEvent:(UITapGestureRecognizer *)gestureRecognizer
{
UIView *piece = [gestureRecognizer view];
if(piece == (view on which you have added gesture))
{
//Do your necessary operation
}
}
答
试试这个,这将有助于你在它的子视图
- (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
}
}
}
禁用的手势,因为你加点触手势到你的主视图它的所有子视图都会得到这个手势。 – Vaisakh
有没有办法来禁用或重写它? – CMOS