gpt4 book ai didi

ios - SelectAnnotation 也在 Xamarin IOS 中取消选择

转载 作者:行者123 更新时间:2023-11-29 05:20:09 25 4
gpt4 key购买 nike

我尝试以编程方式选择我的注释。所以在我的自定义 map 渲染器中我使用了这个。

    _iosMap.SelectAnnotation(myAnnotation, true);

myAnnotation 被选中了,但之后就被取消选择了。 (信息窗口显示一秒钟然后消失)我不知道为什么。我的意思是,当用户点击某些区域时,我的程序会向 map 添加注释,然后立即调用 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

当在 map 上除图钉之外的任何位置点击时,CustomMapRenderer 中会触发 SelectAnnotation。信息窗口显示一秒钟然后消失。

当我将其添加到 OnDidDeselectAnnotationView 时

((MKMapView)Control).SelectAnnotation(((MKMapView)Control).Annotations.ElementAt(0), true);

像以前一样,第一次点击就会消失。在第二次、第三次点击时,它工作正常。为什么先?

最佳答案

我通过添加延迟解决了这个问题。

private void OnTap(UITapGestureRecognizer recognizer)
{
//
PerformSelector(new ObjCRuntime.Selector("ShowAnnotation"), null, 0.6f);
}

[Export("ShowAnnotation")]
void ShowAnnotation()
{
((MKMapView)Control).SelectAnnotation(((MKMapView)Control).Annotations.ElementAt(0), true);
}

关于ios - SelectAnnotation 也在 Xamarin IOS 中取消选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58742551/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com