我正在做一个通过 map 在线送餐的项目。所以用户应该知道厨师的位置。当用户点击注释时,它应该查看厨师的食物菜单。所以当用户点击我需要调用厨师 ID。我可以根据标签值调用厨师ID。

**Juntos.swift**


func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) ->
MKAnnotationView?
{
    var annotationView =
mapView.dequeueReusableAnnotationView(withIdentifier: "identifier")

    if annotationView == nil
      {
        annotationView = MKAnnotationView(annotation: annotation,
         reuseIdentifier: "identifier")
        annotationView!.canShowCallout = true
      }
    else
      {
        annotationView?.annotation = annotation
      }

    guard !(annotation is MKUserLocation) else
      {
        return nil
      }

    if iamA == "COOK"
      {
        annotationView!.image = UIImage(named: "foodie")
      }
    else
      {
        annotationView!.image = UIImage(named: "cook")
      }
           return annotationView
}

func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView)
{
    //    how can i get annotation tag here
}

最佳答案

像这样在这里设置标签 -

annotationView.tag = 1
return annotationView

得到这样的标签——
func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView)
{
    // get annotation tag here
       let tag = view.tag
}

10-08 12:14