更改MKMapView用户位置注释

Jam*_*e22 5 mkmapview ios swift

我正在尝试将MKMapView上的用户默认位置注释从蓝色更改为名为geo的自定义图像。设置断点时会碰到将其设置为geo的那条线,但是两个点(用户默认点和“乘客点”都是默认的红色精确点注释)是我设置的错误,还是存在某些图像规定?

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

        if annotation.isKindOfClass(PassengerLocation) == false {

            //User location
            let userIdentifier = "UserLocation"
            var annotationView = mapView.dequeueReusableAnnotationViewWithIdentifier(userIdentifier)

            if annotationView == nil {
                annotationView = MKPinAnnotationView(annotation:annotation, reuseIdentifier:userIdentifier)
            }
            annotationView!.annotation = annotation
            annotationView!.canShowCallout = true

            // THIS IS NOT WORKING, DEFAULT RED PIN POINT STILL SHOWING
            annotationView!.image = UIImage(named: "geo")
            return annotationView


        }

        let identifier = "PassengerLocation"

        if let annotationView = mapView.dequeueReusableAnnotationViewWithIdentifier(identifier) {
            annotationView.annotation = annotation

            return annotationView
        } else {
            let annotationView = MKPinAnnotationView(annotation:annotation, reuseIdentifier:identifier)
            annotationView.enabled = true
            annotationView.canShowCallout = true

            let btn = UIButton(type: .DetailDisclosure)
            annotationView.rightCalloutAccessoryView = btn

            return annotationView
        }

    }
Run Code Online (Sandbox Code Playgroud)

123*_*321 5

这有效:

func mapView(mapView: MKMapView, viewForAnnotation annotation: MKAnnotation) -> MKAnnotationView? { 
        if annotation.isEqual(mapView.userLocation) {
        let annotationView = MKAnnotationView(annotation: annotation, reuseIdentifier: "userLocation")
        annotationView.image = UIImage(named: "geo")
        return annotationView
    }
}
Run Code Online (Sandbox Code Playgroud)


小智 0

如果您想自定义图像,请使用常规 MKAnnotationView。使用图钉,您所能做的就是改变颜色。