有没有办法在不使用标注的情况下触发敲击事件(在地图引脚上)?
我尝试在下面实现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")
}
答案 0 :(得分:1)
didSelectAnnotationView
是正确的方法。如果您没有看到它被调用,则可能未设置地图视图delegate
。
默认viewForAnnotation
行为将呈现与您的行为非常接近的行为,因此delegate
未正确设置可能不会立即显现。您可能希望在viewForAnnotation
中放置一个日志/断点(或者做一些使它更具视觉效果的东西,例如不同的引脚颜色),并确认是否会调用委托方法。