Pokúšam sa prispôsobiť anotácie na mape a namiesto pinov chcem, aby anotácie vyzerali ako aktuálny indikátor polohy. Ako to urobím? Akákoľvek rada by bola skvelá!
odpovede:
1 pre odpoveď č. 1Vo všeobecnosti môžete použiť vlastný objekt anotácie, ktorý rozširuje MKPointAnnotation. Ale ak stačí zmeniť obrázok, môžete sa vyhnúť podtriede a jednoducho implementovať túto metódu
func mapView(mapView: MKMapView, viewForAnnotation annotation: MKAnnotation) -> MKAnnotationView? {
let identifier = "MyPin"
if annotation.isKindOfClass(MKUserLocation) {
return nil
}
var annotationView = mapView.dequeueReusableAnnotationViewWithIdentifier(identifier)
if let annotationView = annotationView {
annotationView.annotation = annotation
} else {
annotationView = MKAnnotationView(annotation: annotation, reuseIdentifier: identifier)
annotationView.image = UIImage(named: "myPinImage")
}
return annotationView
}
Takže to stačí na to, aby ste našli správny obraz a nahradili ho kolíky. Ale ak chcete sledovať možné zmeny predvoleného obrazu currentLocation, môžete použiť predvolené zobrazenie
let annotationView = mapView.viewForAnnotation(mapView.userLocation());