【问题标题】:iOS main view is responding to subview gesturesiOS主视图正在响应子视图手势
【发布时间】:2012-10-22 18:02:00
【问题描述】:

我正在添加带有点击手势的子视图:

来自 UIView 类(masterButton):

[self addSubview:self.button];

// Add gesture recognizers
[self addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(isTapped:)]];

视图控制器:

masterButton *button = [[masterButton alloc] initWithFrontImage:img ];

[self.view addSubview:button];

我删除了子视图:

UIView * button= [controller.view viewWithTag:controller.tagButton]; [按钮 removeFromSuperview];

它触发播放音频文件的点击手势并且工作正常,但是当我删除子视图并点击子视图所在的同一区域时,它会播放音频,就像子视图在那里一样。如果主视图没有响应子视图的任何手势,我该如何添加子视图?

我正在从 UIview 子类生成子视图,如果我尝试添加这样的手势:

[self.button addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(isTapped:)]];

它不起作用。大家知道为什么吗?

非常感谢您的帮助。

【问题讨论】:

  • 如何删除子视图。发布您的代码
  • 当您的代码显示您正在将手势识别器添加到您的视图中时,我认为您应该将它添加到您的子视图(按钮)中。[self.button addGestureRecognizer:.......]; [self.view 添加子视图:self.button];

标签: iphone ios ipad uiviewcontroller uigesturerecognizer


【解决方案1】:

添加按钮喜欢

[self.button addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(isTapped:)]]

[self.button removeFromSuperview];

【讨论】:

    【解决方案2】:

    只需像下面这样将 Gesture 添加到 masterButton..

    [self.button addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(isTapped:)]];
    

    【讨论】:

      【解决方案3】:

      您正在将 UITapGestureRecognizer 添加到主视图

      将 UITapGestureRecognizer 添加到 self.button 而不是 self

      [self.button addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(isTapped:)]];
      [self addSubview:self.button];
      

      【讨论】:

      • 问题是没有删除子视图。问题是响应点击手势的主视图
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-12
      • 1970-01-01
      • 2015-09-01
      相关资源
      最近更新 更多