为什么viewForAnnotation方法弄乱了我的用户位置?

时间:2015-08-31 14:16:06

标签: ios xcode swift annotations location

最近我在我的应用程序中实现了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

}

此功能中是否存在令人不安的位置服务表示?谢谢。

1 个答案:

答案 0 :(得分:2)

这不会起作用:

if annotation is MKUserLocation {
    return nil
}

相反,请使用:

if annotation.isMemberOfClass(MKUserLocation.self) {
    return nil
}