如何使注释看起来像当前位置指示器?

时间:2016-04-21 01:40:02

标签: ios swift mkmapview

我正在尝试自定义地图上的注释,而不是引脚我希望注释看起来像当前位置指示器。我该怎么做?任何建议都会很棒!

1 个答案:

答案 0 :(得分:1)

通常,您可以使用扩展MKPointAnnotation的自定义注释对象。但是,如果您只需要更改引脚图像,则可以避免子类化,只需实现此方法

func mapView(mapView: MKMapView, viewForAnnotation annotation: MKAnnotation) -> MKAnnotationView? {

    let identifier = "MyPin"

    if annotation.isKindOfClass(MKUserLocation) {
        return nil
    }

    var annotationView = mapView.dequeueReusableAnnotationViewWithIdentifier(identifier)

    if let annotationView = annotationView {
        annotationView.annotation = annotation
    } else {
        annotationView = MKAnnotationView(annotation: annotation, reuseIdentifier: identifier)
        annotationView.image = UIImage(named: "myPinImage")
    }

    return annotationView
}

因此,您可以找到正确的图像并用它替换引脚。 但是,如果您想跟踪默认currentLocation图像的可能更改,则可以重用默认视图

let annotationView = mapView.viewForAnnotation(mapView.userLocation());