Ios 如何在插针掉落时打开MKPinAnnotationView

Ios 如何在插针掉落时打开MKPinAnnotationView,ios,swift,mkmapview,mkannotationview,Ios,Swift,Mkmapview,Mkannotationview,我目前正在使用此功能删除可重复使用的pin: func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView?{ guard !(annotation is MKUserLocation) else { return nil } let reuseId = "pin" var pinView = mapView.dequeueReusableAnnot

我目前正在使用此功能删除可重复使用的pin:

func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView?{

    guard !(annotation is MKUserLocation) else { return nil }
    let reuseId = "pin"
    var pinView = mapView.dequeueReusableAnnotationView(withIdentifier: reuseId) as? MKPinAnnotationView
    if pinView == nil {
        pinView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: reuseId)
    }
    pinView?.pinTintColor = UIColor.orange
    pinView?.canShowCallout = true

    let smallSquare = CGSize(width: 30, height: 30)
    let button = UIButton(frame: CGRect(origin: CGPoint.zero, size: smallSquare))
    button.setTitle("Test", for: UIControlState())
    button.addTarget(self, action: #selector(triggerConfirmedLocation), for: .touchUpInside)

    pinView?.leftCalloutAccessoryView = button
    pinView?.rightCalloutAccessoryView = button
    return pinView
}
目前,用户必须点击pin才能看到注释;但是,我需要在放下管脚时打开注释

我尝试过以下方法:

pinView?.isSelected = true

然而,第一种方法没有任何作用

第二种方法的错误为
“无法调用非函数类型“[MKAnnotation]”的值“

您需要从
MKMapView
使用以下方法:

func selectAnnotation(_ annotation: MKAnnotation, animated: Bool)
可以通过代理替代传递注释,如下所示:

mapView.selectAnnotation(annotation, animated: true)
只需在返回
pinView
之前打电话,您就可以开始了


希望这能有所帮助。

澄清点:听起来您希望打开详图索引视图。注释视图是接点。
mapView.selectAnnotation(annotation, animated: true)