Я использую приведенный ниже код для просмотра «Загрузил» для добавления пользовательского значка аннотации для центра карты, с которого пользователь начал, чтобы при прокрутке он всегда мог видеть свою начальную точку.
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
}
Затем, когда я немного прокручиваю карту, я подозреваю, что прокрутка достаточно далеко, чтобы система могла заставить их появиться снова, аннотация исчезла.Я предполагаю, что это связано с тем, как работает группировка аннотаций, но эта синяя аннотация является особенной, и я хочу, чтобы она присутствовала всегда, как я и думал, displayPriority.