Как изменить markerTintColor в MapKit, не меняя местоположение по умолчанию в Swift? - PullRequest
0 голосов
/ 28 августа 2018

У меня есть MKMarkerAnnotationView, чтобы изменить цвет выводов на моей карте.

func mapView(_ MapView:MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView?{

    let view = MKMarkerAnnotationView(annotation: annotation, reuseIdentifier: "pin")

    view.markerTintColor = .blue

    return view

}

Но когда я запускаю свое приложение, маркер моего местоположения дефолта меняется на. Как я могу изменить пин-код без изменения этого маркера? Код для просмотра местоположения также прост

 func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation])
{
    self.MapView.showsUserLocation = true
}

Спасибо за ответ! :)

Ответы [ 2 ]

0 голосов
/ 28 августа 2018

Вы можете проверить, является ли аннотация местоположением пользователя следующим образом:

func mapView(_ MapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
    if annotation is MKUserLocation {
        return nil
    }

    let view = MKMarkerAnnotationView(annotation: annotation, reuseIdentifier: "pin")
    view.markerTintColor = .blue
    return view
}
0 голосов
/ 28 августа 2018

В вашем методе проверьте, является ли объект аннотации экземпляром MKUserLocation. Если это так, верните nil, чтобы сохранить стандартное представление аннотации местоположения пользователя.

(Документы для mapView(_:viewFor:) объясняют это.)

...