检测标注与MKMapView中的其他UIViews重叠

我有一些显示在MKMapView上的MKMapView作为控件来过滤地图的内容,我的mapView有注释,可以显示标注。我想创build一个效果,如果我的标注出现或滚动,我的覆盖层将消失在重叠之下并且在标注没有占据位置之后再次可见。

有没有办法找出如果一个MKMapView标注重叠UIView

我努力了:

  1. 访问标注frame以检查它是否与叠加层相交 – 无法访问标注。
  2. 计算标注出现的位置并跟踪滚动,以计算标注是否在叠加层下方 – 无法预测标注出现的行为 – 如何转换以避免popup屏幕外
  3. 制作叠加控件需要单独的屏幕空间,因为地图变得太小,某些屏幕区域变得空闲,因为控件不占用矩形空间。 如果没有解决我的问题,将使用此作为最后的手段。

编辑

我做了我想要的效果gif

在这里输入图像说明

蓝色方块代表控件,红色代表标注,基本上我想让我的覆盖控件在地图下方消失。