iphone - 如何删除手势识别器

标签 iphone objective-c ios ipad ios4

所以,我将手势识别器添加到覆盖 View 中。当点击屏幕时,我希望这个覆盖消失。话虽如此,添加手势识别器会覆盖“内部修饰”和其他按钮单击事件。我需要这个,因此我需要删除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];    

}

在这里,我将覆盖从另一个 View 中移除。

- (void) dismissView
{
    UIView *overlay = [self viewWithTag:50];
    [overlay removeFromSuperview];
    self.scrollEnabled = YES;
}

我的问题是如何在第二种方法中删除手势识别器?我不能将变量 tap 传递给这个方法,也不能在以前的方法中删除它。任何指针?在事件方面,我遇到了很多传递变量问题。

最佳答案

此循环将删除 View 具有的所有手势识别器

for (UIGestureRecognizer *recognizer in self.view.gestureRecognizers) {
    [self.view removeGestureRecognizer:recognizer];
}

关于iphone - 如何删除手势识别器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10947982/

相关文章:

ios - 如何使用swift3将数据库存储到结构中?

iOS NSUserDefaults 同步完成前的访问

java - 如何将整个文件夹或包从 Java 转换为 Objective-C?

objective-c - AB 地址簿 ABSourceName

iPhone签名概念问题: why is Ad Hoc deployment needed?

Objective-c 符号 ** & +-

iPhone:如何构建自己的 TabBar?

ios - iPhone 上的 LandScape 方向无法正常工作

iphone - 是否有可能在结束减速之前知道最终的 UIScrollView contentOffset?

iphone - 使用发布版本配置进行编译时,应用程序立即在iOS 3.x上崩溃