所以,我在覆盖视图中添加了一个手势识别器。当点击屏幕时,我希望这个覆盖消失。话虽如此,添加手势识别器会覆盖“内部修饰”和其他按钮单击事件。我需要这个,因此我需要删除gesturerecognizer。我可以使用这种方法,但是我有问题。我的代码如下 -
- (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 传递给这个方法,也不能在以前的方法中删除它。任何指针?在事件方面,我遇到了很多传递变量问题。