/ / Zmenou farby špendlíka v MKmapView zmeníte nový obrázok špendlíka, ako aj súčasné umiestnenie, na starý obrázok špendlíka? - ios, rýchly, anotácie, mkmapview, uicolor

Nastupujúcu pin v MKmapView ukazuje nový pin obraz rovnako ako aktuálnu polohu do starý pin obraz?-ios, poznámok, swift, mkmapview, uicolor

Snažím sa zmeniť farbu jednej sady kolíkovdo modra a ďalšia sada kolíkov zostane červená. Nasledoval som otázku, ktorá ma vedie k bodu, v ktorom kolíky menia farbu. Ale aj moje súčasné umiestnenie sa zmení na špendlík. Kolíky sa tiež menia z nového loga na staré logo (v skutočnosti obrázok špendlíka). Existuje spôsob, ako by kolíky mohli zostať ako nové logo / obrázok a tiež by sa moja aktuálna poloha mala zobrazovať normálne, t. J. Modrá pulzujúca bodka. ako aj zmenu jednej sady kolíkov na modrú, zatiaľ čo ostatné zostanú červené?

Prosím pomôžte! Nižšie je môj kód:

class MyPointAnnotation : MKPointAnnotation {
var pinTintColor: UIColor?
}

class ViewController: UIViewController, MKMapViewDelegate {
@IBOutlet var map: MKMapView!

override func viewDidLoad() {
super.viewDidLoad()
map.delegate = self

let anx = MyPointAnnotation()
anx.coordinate = CLLocationCoordinate2D(latitude: -36.56795, longitude: 176.56432)
anx.pinTintColor = .red

let any = MyPointAnnotation()
any.coordinate = CLLocationCoordinate2D(latitude: -36.54322, longitude: 176.43221)
any.pinTintColor = .blue

map.addAnnotation(anx)
map.addAnnotation(any)
}

func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
var annotationView = mapView.dequeueReusableAnnotationView(withIdentifier: "myAnnotation") as? MKPinAnnotationView

if annotationView == nil {
annotationView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: "myAnnotation")
} else {
annotationView?.annotation = annotation
}

if let annotation = annotation as? MyPointAnnotation {
annotationView?.pinTintColor = annotation.pinTintColor
}

return annotationView
}
}

odpovede:

0 pre odpoveď č. 1

Ale aj moje súčasné umiestnenie sa zmení na špendlík.

Pridajte nasledujúci kód do mapView:viewFor... metóda:

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