作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有没有办法在不使用标注的情况下触发点击事件(在 map 图钉上)?
我尝试实现下面的 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")
}
最佳答案
didSelectAnnotationView
是正确的方法。如果您没有看到它被调用,则可能是 map View 的 delegate
尚未设置。
默认的 viewForAnnotation
行为将呈现与您所做的非常接近的内容,因此可能不会立即明显看出 delegate
未正确设置。您可能想在 viewForAnnotation
中放置一个日志/断点(或者做一些让它在视觉上更加明显的东西,例如不同的引脚颜色)并确认是否调用了委托(delegate)方法。
关于ios - 如何在不使用标注的情况下触发点击事件(在 map 图钉上)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30873111/
我是一名优秀的程序员,十分优秀!