如何在不使用标注的情况下触发敲击事件(在地图引脚上)?

时间:2015-06-16 16:24:16

标签: ios swift

有没有办法在不使用标注的情况下触发敲击事件(在地图引脚上)?

我尝试在下面实现didSelectAnnotationView,但它似乎不起作用:

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

    if let annotation = annotation {
        let identifier = "pin"
        var view: MKPinAnnotationView
        if let dequeuedView = self.mapView.dequeueReusableAnnotationViewWithIdentifier(identifier) as? MKPinAnnotationView {
            dequeuedView.annotation = annotation
            view = dequeuedView
        } else {
            view = MKPinAnnotationView(annotation: annotation, reuseIdentifier: identifier)
            view.canShowCallout = false
            view.enabled = true
        }
        return view
    }
    return nil


}


 func mapView(mapView: MKMapView!, didSelectAnnotationView view: MKAnnotationView!) {
    println("test")

}

1 个答案:

答案 0 :(得分:1)

didSelectAnnotationView是正确的方法。如果您没有看到它被调用,则可能未设置地图视图delegate

默认viewForAnnotation行为将呈现与您的行为非常接近的行为,因此delegate未正确设置可能不会立即显现。您可能希望在viewForAnnotation中放置一个日志/断点(或者做一些使它更具视觉效果的东西,例如不同的引脚颜色),并确认是否会调用委托方法。