MKMarkerAnnotationView selectAnnotation()同时显示MarkerView和标注

时间:2018-09-27 20:00:48

标签: ios swift mapkit mkannotation

在我的MKMapView中,我显示了MKMarkerAnnotationView

MKMarkerAnnotationView

这看起来像预期的那样。

当我手动点击它时,MarkerView呈现为一个点,并显示标注:

Callout

当我以编程方式选择相应的MKAnnotation

mapView.selectAnnotation(copiedAnnotation, animated: false)
在主线程中,

我希望得到与点击相同的结果。 但是,相反,我得到了:

eCallout and marker

因此,如果没有标注,则MarkerView将以正确的大小呈现。正确的标注会显示在其顶部。

animated: false/true没有区别。

我怎么办MapKit渲染selectAnnotation就像点击MKMarkerAnnotationView一样?

这发生在iOS 11和12.0中。

修改

这是一个计时问题。打电话时

mapView.selectAnnotation(copiedAnnotation, animated: false)
在添加注释后的前100毫秒内

,该错误会显示。解决方案是等待至少600 ms,然后以编程方式进行选择。等到视图出现还不够。

编辑2

向苹果雷达提交了一个可行且可复制的示例。

0 个答案:

没有答案