在我的MKMapView
中,我显示了MKMarkerAnnotationView
这看起来像预期的那样。
当我手动点击它时,MarkerView呈现为一个点,并显示标注:
当我以编程方式选择相应的MKAnnotation
时
mapView.selectAnnotation(copiedAnnotation, animated: false)
在主线程中,我希望得到与点击相同的结果。 但是,相反,我得到了:
因此,如果没有标注,则MarkerView将以正确的大小呈现。正确的标注会显示在其顶部。
animated: false/true
没有区别。
我怎么办MapKit渲染selectAnnotation
就像点击MKMarkerAnnotationView
一样?
这发生在iOS 11和12.0中。
修改
这是一个计时问题。打电话时
mapView.selectAnnotation(copiedAnnotation, animated: false)
在添加注释后的前100毫秒内,该错误会显示。解决方案是等待至少600 ms,然后以编程方式进行选择。等到视图出现还不够。
编辑2
向苹果雷达提交了一个可行且可复制的示例。