最近我在我的应用程序中实现了viewForAnnotation方法,以使用我的注释(图像,颜色等)的特征。唯一的问题是,虽然该函数在我的代码中,但位置服务行为很奇怪。而不是蓝色位置标记"脉冲"它相对较小,它遮蔽整个县的蓝色,停止脉动,并且相当不稳定。
以下是我正在使用的代码:
func mapView(mapView: MKMapView!, viewForAnnotation annotation: MKAnnotation!) -> MKAnnotationView! {
if annotation is MKUserLocation {
return nil
}
let reuseId = "pin"
var pinView = mapView.dequeueReusableAnnotationViewWithIdentifier(reuseId) as? MKPinAnnotationView
if pinView == nil {
pinView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: reuseId)
pinView!.canShowCallout = true
pinView!.animatesDrop = false
pinView?.pinColor = .Green
}
else {
pinView!.annotation = annotation
}
return pinView
}
此功能中是否存在令人不安的位置服务表示?谢谢。
答案 0 :(得分:2)
这不会起作用:
if annotation is MKUserLocation {
return nil
}
相反,请使用:
if annotation.isMemberOfClass(MKUserLocation.self) {
return nil
}