Mapbox (iOS) user annotations covering/preventing touch events from other annotations - 使用 User annotations hit test

Mapbox (iOS) user annotations covering/preventing touch events from other annotations - use User annotations hit test

我在使用 Mapbox 时遇到了一些困难 iOS。

我正在我的地图上添加注释,但是当它们非常接近(实际上重叠)用户注释(即 MGLUserLocation)时,点击不会传递给其他注释。

我尝试在增加其他注释的值的同时为用户注释(将其设置为 .0/-1 或任何更低的值)使用 z 顺序,但没有成功

func mapView(_ mapView: MGLMapView, didSelect annotation: MGLAnnotation)

始终使用用户注释调用。

我正在为用户注释使用自定义视图,我也尝试将其 isEnable 属性 设置为 false。此外,当我尝试在自定义视图中覆盖 override open func tionsetSelected(_ selected: Bool, animated: Bool) 时,它不会被调用(无论 isEnabled 是 true/false...)

似乎用户位置注释周围的“光环”使得任何点击都只能与用户注释交互 - 即使它之前似乎还有其他对象...

我正在考虑在用户注释“隐藏”的相关视图上设置 UIGestureRecognizer 作为最后一个选项...但是我是否遗漏了有关 Mapbox 中特殊用户注释的内容?

我创建了一个简单的项目,试图尽可能地模仿我原始项目中的问题,这不是 public - Repo

这是我试图在 Google 地图

中实现的功能示例

找到了我认为以最佳方式利用 Mapbox API 的解决方案: MGLUserLocationAnnotationView 有一个 属性 叫做 hitTestLayer: CALayer?

您可以覆盖它并提供您希望启用的可点击层的大小....在我的例子中,我不关心用户注释交互,所以我将它设置为零(我更新了代码在示例回购中也是如此)