Приоритет отображения аннотации не делает то, что я ожидаю, как сохранить пользовательский значок на экране - PullRequest
0 голосов
/ 21 декабря 2018

Я использую приведенный ниже код для просмотра «Загрузил» для добавления пользовательского значка аннотации для центра карты, с которого пользователь начал, чтобы при прокрутке он всегда мог видеть свою начальную точку.

    if let lat = curBlip.blip_lat, let lon = curBlip.blip_lon {
        let mapCenter = CLLocationCoordinate2DMake(lat, lon)
        let mapSpan = MKCoordinateSpanMake(0.01, 0.01)
        let mapRegion = MKCoordinateRegionMake(mapCenter, mapSpan)
        self.map.setRegion(mapRegion, animated: true)

        let coordinate = CLLocationCoordinate2D(latitude: lat, longitude: lon)
        let annotation = MKPointAnnotation()
        annotation.coordinate = coordinate
        annotation.title = "Your Blips Location"
        annotation.subtitle = "Subtitle Placeholder"

        self.map.addAnnotation(annotation)

Когда представление загружается, я загружаю эту аннотацию так, чтобы она всегда была первой, и я устанавливаю bool с именем «set» равным true после первой аннотации, чтобы убедиться, что он получает пользовательский значок.Проблема, с которой я сталкиваюсь, заключается в том, что, хотя у меня установлена ​​аннотация для отображения приоритета, требуемая аннотация исчезает, когда я убираю карту.Как сделать так, чтобы эта аннотация всегда сохранялась, или есть лучший способ установить круг «это то место, где началась карта», который не исчезнет?

func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
    if set {
        return nil
    } else {
        let view = MKAnnotationView(annotation: annotation, reuseIdentifier: "annotationId")
        view.image = UIImage(named: "locationArea50")
        view.canShowCallout = true
        view.displayPriority = .required
        set = true
        return view
    }

Blue circle annotation appears

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

enter image description here

...