【问题标题】:UIGesture is not fireing + removing subview from parent which is not superviewUI Gesture 没有触发 + 从不是父视图的父视图中删除子视图
【发布时间】:2015-05-07 22:51:39
【问题描述】:

我的屏幕中有以下层次结构 ViewController(红色和蓝色下面的绿色)具有两个“覆盖” UIviewController 视图区域的子视图

蓝色视图是谷歌地图(GMSMapView)

我有另一个 UIView(黑色),它附加了一个 Tapgesture,点击它会从它的超级视图中删除自己。

如果我将黑色作为子视图添加到我的 viewcontrollerview(将黑色添加到绿色),那么一切正常

但如果我在地图上添加黑色(蓝色),则不会调用 Tapgesture

关于为什么会这样的任何想法?

注意:地图手势完美运行。

【问题讨论】:

  • 也许 GMSMapView 捕获了手势并阻止它向下移动?您可以只调整视图的大小并将其放置在其顶部。
  • @Toby nop 我有一个用于地图的 didTap 方法,它们也不会被触发
  • 您不知道 Google 地图的视图是如何编码的,所以可能会发生一些可能并不完全明显的奇怪交互?一种解决方法是将谷歌地图放在另一个容器视图中,然后在其中添加黑色视图。

标签: objective-c google-maps uiview uigesturerecognizer


【解决方案1】:

由于未触发 mapView 手势,我假设未为子视图启用 userInteractions。
对于每个 subView,您需要这样做:self.subviewOfInterest.userInteractionEnabled = YES;. 默认情况下设置为 NO。

This答案有更多解释。

【讨论】:

  • mapView 手势被触发。
  • 上述评论另有说明。但是,您是否检查过 userInteractions 是否支持子视图?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-15
  • 1970-01-01
相关资源
最近更新 更多