所以,我在叠加视图中添加了一个手势识别器.当点击屏幕时,我希望这个覆盖层消失.话虽如此,添加手势识别器会覆盖"内部触碰"和其他按钮点击事件.我需要把这个拿回来,所以我需要重新安装检测识别器.我可以使用这种方法,但我有一个问题.下面是我的代码-
- (void)helpClicked
{
CGRect visibleBounds = [self convertRect:[self bounds] toView:viewContainer];
CGFloat minimumVisibleX = CGRectGetMinX(visibleBounds);
UIImageView * helpOverlay = [[UIImageView alloc]initWithFrame:CGRectMake(minimumVisibleX, 0, 1024, 768)];
UIImage * helpImage = [UIImage imageNamed:@"HelpOverLay.png"];
[helpOverlay setImage:helpImage];
helpOverlay.tag = 50;
self.scrollEnabled = NO;
[self addSubview:helpOverlay];
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]
initWithTarget:self
action:@selector(dismissView)];
[self addGestureRecognizer:tap];
}
在这里,我将从另一个视图中移除覆盖层.
- (void) dismissView
{
UIView *overlay = [self viewWithTag:50];
[overlay removeFromSuperview];
self.scrollEnabled = YES;
}
我的问题是如何在第二种方法中移除手势识别器?我不能将变量tap传递到这个方法中,也不能在前面的方法中删除它.有什么建议吗?当涉及事件时,我遇到了很多传递变量的问题.