Iphone iOS:无法识别子视图上的手势
我有一个UIScrollView作为我的根视图,还有一个UIImageView(我们称之为父视图)作为根视图的子视图。然后我添加另一个UIImageView(lat称之为子视图)作为父视图的子视图。子视图不包含在父视图的边界中。这是我的视图布局的视觉表示Iphone iOS:无法识别子视图上的手势,iphone,ios,ipad,uiview,uigesturerecognizer,Iphone,Ios,Ipad,Uiview,Uigesturerecognizer,我有一个UIScrollView作为我的根视图,还有一个UIImageView(我们称之为父视图)作为根视图的子视图。然后我添加另一个UIImageView(lat称之为子视图)作为父视图的子视图。子视图不包含在父视图的边界中。这是我的视图布局的视觉表示 ................................ . root view . . ......... . . .............. . ch
................................
. root view .
. ......... .
. .............. . child . .
. .parent view . . view . .
. .............. ......... .
. .
................................
现在,当我将UIPangestureRecognitor添加到子视图时,该手势无法识别。我已经检查了userInteractionEnabled和所有内容。当我将子视图设置为根视图的子视图时,可以正确识别手势。有人知道是什么导致了这个问题吗?为您的childview设置
标签:
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc]
initWithTarget:self
action:@selector(singleTapGestureCaptured:)];
[[rootview viewWithTag:111]addGestureRecognizer:singleTap];
-(void)singleTapGestureCaptured:(UITapGestureRecognizer *)gesture
{
//your code;
}
我认为造成此问题的原因是,您将uigestureRecognitor
添加到在其父边界中不可见的内容中。如果在父视图上设置了clipstobunds=YES
,则不会显示子视图,对吗?这就是人们对待它的方式。你可以看到它,但“它不在那里”
就像这样:你在厨房里,你可以听到客厅里的电视,你知道它在那里,但你看不见。另一方面,如果墙壁是看不见的,你可以看到它,但你不能与它互动。因为你不能穿过墙壁
希望这能有所帮助。我已经将UIgestureRecognitor添加到我的孩子视图中。问题是该手势无法识别,即视图对点击、平移没有响应,etcI尝试了该手势,但您是对的,Ryan,它不起作用。添加子视图时,应调整父视图的大小。您可能必须重写sizeThatFits方法。我也这么认为。但是我需要将子视图附加到父视图,以便它们可以一起移动。是否有任何方法可以在不使用子视图的情况下实现此目的?您可以使用UIView作为父视图,并将两个图像添加到此视图中,然后将手势识别器附加到UIView,而不是其中一个图像。当你移动大视图时,这将使两个em都移动。我接受这一点作为我问题的答案。这将有助于其他iOS程序员,因为遇到这种情况并不常见。