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

}

此功能中是否有可能会干扰位置服务表示的内容?谢谢。

最佳答案

这行不通:

if annotation is MKUserLocation {
    return nil
}

而是使用:
if annotation.isMemberOfClass(MKUserLocation.self) {
    return nil
}

关于ios - 为什么viewForAnnotation方法会弄乱用户的位置?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32313396/

10-12 18:58