Estou tentando personalizar as anotações no mapa e, em vez de pinos, quero que as anotações se pareçam com o indicador de localização atual. Como eu faria isso? Qualquer conselho seria ótimo!
Respostas:
1 para resposta № 1Em geral, você pode usar o objeto de anotação personalizado que estende o MKPointAnnotation. Mas se você precisar alterar apenas a imagem do pino, poderá evitar a subclasse e apenas implementar esse método
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
}
Portanto, basta encontrar a imagem correta e substituir os pinos por ela. Mas se você quiser acompanhar as possíveis alterações da imagem currentLocation padrão, poderá reutilizar a visualização padrão
let annotationView = mapView.viewForAnnotation(mapView.userLocation());