【问题标题】:How to link an annotation in MapView to its calling pin如何将 MapView 中的注释链接到其调用引脚
【发布时间】:2018-03-29 08:15:42
【问题描述】:

Swift 4 iOS 11.x

了解了 mapViews 和注解,我可以完全了解我想做的一些功能。

我创建了一个 mapView,并用一个按钮向它添加了一个注释,到目前为止一切都很好。我希望这个按钮是一个删除 pin,所以它看起来像这样。

现在,当我单击蓝色的 no 条目时,我希望它也删除它已连接的黑色引脚。但是如何跟踪注释的链接到它的引脚。我通过按钮和附件视图收到回电。我可以查找视图的标题并找到链接,但肯定有更好的方法。

【问题讨论】:

    标签: ios swift annotations mkmapview mkannotationview


    【解决方案1】:

    你需要使用func mapView(_ mapView: MKMapView,annotationView view: MKAnnotationView,calloutAccessoryControlTapped control: UIControl)这个方法MKMapViewDelegate

    类似的东西

    func mapView(_ mapView: MKMapView, annotationView view: MKAnnotationView,
                 calloutAccessoryControlTapped control: UIControl) {
    
        //Here you have the annotation that was selected
        let selectedAnnotation = view.annotation
        //Do whatever you need here
    }
    

    【讨论】:

    • 如果你想要pin然后view就是AnnotationView,它就是pin本身@user3069232
    • 那么为什么当我执行这个命令时 mapView.removeAnnotation((view.annotation)!) 没有删除 pin。
    • 停止按,如果我输入一个引脚,它可以工作,但如果我输入多个引脚,我需要选择并删除它两次?很奇怪……
    • 只有一次,每次标注都会从 MapView 中删除一个注释,对吧? @user3069232
    • 试图弄清楚事件的顺序,但似乎我添加了多个引脚;第一次单击按钮时,注释消失但引脚仍然存在,第二次单击同一注释时,引脚被删除。我认为它与按钮相关联,我可以创建三个图钉,为每个图钉单击删除...不起作用。但如果我再次点击删除,它们就会消失!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-22
    相关资源
    最近更新 更多