Мне нужно показать свое местоположение с нормальной синей точкой и другую точку с другим маркером - PullRequest
1 голос
/ 30 апреля 2019

Я изменил дизайн маркера в mapView, но при этом я изменил маркер своего местоположения, и это было не то, что я хотел.Я просто хочу поменять маркер MIT и один из моего местоположения, чтобы оставить его только с нормальным синим маркером, который появляется на всех картах.

Здесь я оставляю некоторый код, который может давать сбой.

mapView.register(MKMarkerAnnotationView.self,
                         forAnnotationViewWithReuseIdentifier: MKMapViewDefaultClusterAnnotationViewReuseIdentifier)
let mitCoordinate = CLLocationCoordinate2D(latitude: -41.471373559102965, longitude: -72.94215917587279)
let mitAnnotation = SchoolAnnotation(coordinate: mitCoordinate, title: "MIT", subtitle: "mit - USA")

mapView.addAnnotation(mitAnnotation)
mapView.setRegion(mitAnnotation.region, animated: true)


extension BusinessViewController: MKMapViewDelegate {
    func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
        if let schoolAnnotationView
            = mapView.dequeueReusableAnnotationView(withIdentifier: MKMapViewDefaultAnnotationViewReuseIdentifier) as? MKMarkerAnnotationView {
            schoolAnnotationView
            .animatesWhenAdded = true
            schoolAnnotationView
            .titleVisibility = .adaptive
            schoolAnnotationView
            .titleVisibility = .adaptive

            return schoolAnnotationView
        }

        return nil
    }

Вот изображение:

image

1 Ответ

1 голос
/ 30 апреля 2019

Проблема в том, что ваша реализация

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

не ищет, является ли эта annotation вашей аннотацией MIT или аннотацией вашего местоположения пользователя.Вам нужно начать с условия if и проверить это.Если это местоположение пользователя, вы возвращаете nil, чтобы получить маркер по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...