iOS:未识别子视图的手势

时间:2012-02-25 08:17:53

标签: iphone ios ipad uiview uigesturerecognizer

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

................................
.       root view              .
.                  .........   .
.  ..............  . child .   .
.  .parent view .  . view  .   .
.  ..............  .........   .
.                              .
................................

现在,当我向子视图添加UIPanGestureRecognizer时,无法识别手势。我检查了userInteractionEnabled和所有内容。当我将子视图设置为根视图的子视图时,可以正确识别手势。有谁知道导致这个问题的原因是什么?

2 个答案:

答案 0 :(得分:5)

我认为这个问题是因为你在父母范围内看不到的UIGestureRecognizer。如果在 parentView 上设置clipsToBounds = YES,则不会显示 childView ,对吧?这就是它的处理方式。你可能会看到它,但“它不存在”。

就像这样:你在厨房里,你可以在起居室里听到电视,你知道就在那里,但是你看不到它。另一方面,如果墙壁不可见,你可以看到它,但你无法与之互动。因为你无法穿过墙壁。

希望这对任何帮助。

答案 1 :(得分:0)

为您的子视图设置tag

UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc]
          initWithTarget:self
                  action:@selector(singleTapGestureCaptured:)];
[[rootview viewWithTag:111]addGestureRecognizer:singleTap];

-(void)singleTapGestureCaptured:(UITapGestureRecognizer *)gesture 
{
    //your code;
}