无法在swift中显示注释的左侧附件视图

时间:2017-02-14 06:37:21

标签: ios swift apple-maps

此代码用于初始化注释的视图,但右侧附件视图在地图中不可见。

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


    if view == nil {
        view = MKAnnotationView(annotation: annotation, reuseIdentifier: "Map")
        view?.canShowCallout = true
        let btn = UIButton(type: .detailDisclosure)
        view?.rightCalloutAccessoryView = btn

    }

    view?.annotation = annotation
    return view
}

我不知道问题所在。

2 个答案:

答案 0 :(得分:0)

使用此

  func mapView(mapView: MKMapView!, viewForAnnotation annotation: MKAnnotation!) -> MKAnnotationView! {

  if annotation is MKUserLocation {
    return nil
 }

  let reuseId = "AddPin"
  let pinView = mapView.dequeueReusableAnnotationViewWithIdentifier(reuseId) as? MKPinAnnotationView
  if pinView == nil 
  {
    pinView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: reuseId)
    pinView!.canShowCallout = true
    pinView!.animatesDrop = true
    pinView!.pinColor = .Red

    pinView!. leftCalloutAccessoryView = UIButton.buttonWithType(.DetailDisclosure) as UIButton
   } else {
    pinView!.annotation = annotation
  }
   return pinView
  }

答案 1 :(得分:0)

请使用此并检查

    let reuseAnno = "test"

    var anno = mapView.dequeueReusableAnnotationViewWithIdentifier(reuseAnno)
    if anno == nil {

        anno = MKAnnotationView(annotation: annotation, reuseIdentifier: reuseAnno)
        anno?.image = UIImage(named: "imagename.png")
        anno?.canShowCallout = true
    }

    let customButton = UIButton(type: .DetailDisclosure)
    customButton.addTarget(self, action: #selector(ViewController.yourFuncName), forControlEvents: .TouchUpInside)
    anno?.rightCalloutAccessoryView = customButton
    return anno