Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone iOS:无法识别子视图上的手势_Iphone_Ios_Ipad_Uiview_Uigesturerecognizer - Fatal编程技术网

Iphone iOS:无法识别子视图上的手势

Iphone iOS:无法识别子视图上的手势,iphone,ios,ipad,uiview,uigesturerecognizer,Iphone,Ios,Ipad,Uiview,Uigesturerecognizer,我有一个UIScrollView作为我的根视图,还有一个UIImageView(我们称之为父视图)作为根视图的子视图。然后我添加另一个UIImageView(lat称之为子视图)作为父视图的子视图。子视图不包含在父视图的边界中。这是我的视图布局的视觉表示 ................................ . root view . . ......... . . .............. . ch

我有一个UIScrollView作为我的根视图,还有一个UIImageView(我们称之为父视图)作为根视图的子视图。然后我添加另一个UIImageView(lat称之为子视图)作为父视图的子视图。子视图不包含在父视图的边界中。这是我的视图布局的视觉表示

................................
.       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程序员,因为遇到这种情况并不常见。