我尝试以编程方式选择我的注释。因此,在我的自定义地图渲染器中,我使用了它。
_iosMap.SelectAnnotation(myAnnotation,true);
myAnnotation可以正确选择,但是此后立即取消选择。 (信息窗口显示的消失了一秒钟)我不知道为什么。我的意思是,当用户在某些区域中轻按时,我的程序会在地图上添加注释,然后它会调用SelectAnnotation来显示信息窗口。
我尝试实现此solution。
void OnDidDeselectAnnotationView(object sender,MKAnnotationViewEventArgs e) {
MKMarkerAnnotationView annotationView = (MKMarkerAnnotationView) e.View;
if (someBoolToDetectUnwantedDeselect) {
_iosMap.SelectAnnotation(annotationView.Annotation,true);
}
}
但是没有用。我的意思是注释被选中(触发了OnDidSelectAnnotationView方法。)但是没有出现信息窗口。我该如何解决?
我尝试使用GestureRecognizerShouldBegin(看到了here。)但是在选择时,取消选择了GestureRecognizerShouldBegin并没有触发。
添加:我在这里重现该问题。
http://www.mediafire.com/file/s1ahsdum258yqpk/selectannotationproblem.rar/file
在地图上点按别针时,SelectAnnotation会在CustomMapRenderer中触发。信息窗口显示的瞬间消失了。
当我将其添加到OnDidDeselectAnnotationView
((MKMapView)Control).SelectAnnotation(((MKMapView)Control).Annotations.ElementAt(0),true);
就像以前一样,在第一次点击时消失。在第二,第三次点击时可以正常工作。为什么要先?