0

每当用户点击 时MKPointAnnotation,我希望他被重定向到特定视图。我的问题是如何让注释在点击时执行操作?

这是我的代码:

for i in closestpharmacyname {
                var docref2 = db.collection("pharmacies").document(i)
                print("Pharmacy: ", i)
                docref2.getDocument(source: .cache) { (document, error) in
                    if var document  = document {
                        var pharmacylatitude = document.get("latitude") as! Double
                        var pharmacylongitude = document.get("longitude") as! Double
                        print(pharmacylatitude, pharmacylongitude)
                             
                        var pharmacyannotation = MKPointAnnotation()
                        pharmacyannotation.coordinate = CLLocationCoordinate2D(latitude: pharmacylatitude, longitude: pharmacylongitude)
                        pharmacyannotation.title = i
                    
                        self.MapView.addAnnotation(pharmacyannotation)
                    } else{
                        print("Document Does not exist")
                    }
                    
                }
            }
4

1 回答 1

1

为此,您需要添加:

yourAnnotationView?.rightCalloutView = UIButton(type: UIButtonType.detailDisclosure)

进入你的 mapView(_:viewFor:) 函数。这将改变注释的外观,但在侧面会有一个按钮,您可以按下它来执行不同的任务。注释看起来像这样:在此处输入图像描述

为了处理这些任务,您还需要添加一个新函数:

func mapView(_ mapView: MKMapView, annotationView view: MKAnnotationView, calloutAccessoryControlTapped control: UIControl) {
  //perform tasks here
}
于 2020-11-15T16:46:57.763 回答