【问题标题】:UIGestureRecognizer under the other UIView另一个UIView下的UIGestureRecognizer
【发布时间】:2017-10-06 04:40:40
【问题描述】:

对于手势和层次结构的小问题,我找不到解决方案。你有它的样子:

-superview
--view A
---objectViewA z UIGestureRecognizer
--view B
---objectViewB z UIGestureRecognizer

在开始时 viewA 和 viewB 被隐藏。用户根据需要取消隐藏。当 viewB 没有覆盖 viewA 时,我可以移动 objectViewA,但如果我们取消隐藏 viewB,我可以移动 objectViewB,但 objectViewA 不会返回任何触摸。

我添加了shouldRecognizeSimultaneouslyWith 委托,但它不起作用。它没有采取任何行动。

如何解决这个问题?我会很高兴的!

【问题讨论】:

  • objectViewBUIGestureRecognizerobjectViewA 调用时你想做什么?
  • objectViewAobjectViewB 可以在屏幕上移动,但objectViewAviewB 下方。我希望所有对象 A 和 B 都可以移动

标签: ios objective-c swift uiview uigesturerecognizer


【解决方案1】:

您可以使用 UIGestureRecognizerDelegate 来确定 viewB 是否应该处理手势或将其向下传递给 viewA。

https://developer.apple.com/reference/uikit/uigesturerecognizerdelegate

【讨论】:

  • 我在 superview 中有所有手势代表。不幸的是 objectViewA 对任何触摸都没有反应。
【解决方案2】:

你必须像这样使用委托方法。

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{

       if ([touch.view isDescendantOfView:(Your View)]) {
             return YES;
          }
          return NO;
   }

希望对你有帮助。

【讨论】:

  • 很遗憾没有。背景手势没有收到任何触摸:/
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-04
  • 2010-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多