为什么当 GMSMarker 与 GMSOverlay 重叠时我需要点击两次 GMSMarker 才能显示其信息窗口?

2023-12-28

我有一个GMS覆盖在 GMSMapView 中,所以我用以下方法监听对它的点击:

func mapView(_ mapView: GMSMapView, didTap overlay: GMSOverlay) {
    // Overlay was tapped
}

然后我想要一个GMS标记绘制在 GMSOverlay 上,我用以下方法聆听对它的点击:

func mapView(_ mapView: GMSMapView, didTap marker: GMSMarker) -> Bool {
    // Marker was tapped
    return false
}

每次调用标记的侦听器时,其信息窗口都会隐藏(如果已显示)或显示(如果已隐藏)。

问题是每次我点击它时,不会调用标记的侦听器.

一步步:

  1. 挖掘市场:

    • 信息窗口shows因为标记的侦听器被调用。
    • 不调用覆盖层的侦听器。
  2. 挖掘市场:

    • 信息窗口不隐藏(它应该)因为没有调用标记的侦听器。
    • 覆盖层的侦听器被调用(不应该)。
  3. 挖掘市场:

    • 信息窗口hides因为标记的侦听器被调用。
    • 不调用覆盖层的侦听器。
  4. 挖掘市场:

    • 信息窗口不显示(它应该)因为没有调用标记的侦听器。
    • 覆盖层的侦听器被调用(不应该)。
  5. 点击标记:步骤 1。

  6. 点击标记:步骤 2。

  7. 点击标记:步骤 3。

  8. 点击标记:步骤 4。

... 等等 ...

简单来说:

第一次点击后,我需要点击标记两次才能隐藏或显示信息窗口。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么当 GMSMarker 与 GMSOverlay 重叠时我需要点击两次 GMSMarker 才能显示其信息窗口? 的相关文章

随机推荐