我有一个UIScrollView作为我的根视图,一个UIImageView(让我们称之为父视图)作为根视图的子视图。然后我添加另一个UIImageView(lat的称之为子视图)作为父视图的子视图。子视图不包含在父视图的边界中。这是我的视图布局的直观表示。
................................
. root view .
. ......... .
. .............. . child . .
. .parent view . . view . .
. .............. ......... .
. .
................................
现在,当我向子视图添加UIPanGestureRecognizer时,无法识别手势。我检查了userInteractionEnabled和所有内容。当我将子视图设置为根视图的子视图时,可以正确识别手势。有谁知道导致这个问题的原因是什么?
答案 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;
}