Como impedir que o método viewForAnnotation substitua o beacon de localização do usuário padrão no iOS
No momento, estou preenchendo uma visualização de mapa com anotações e também exibindo a localização atual do usuário. Com o método viewForAnnotation, ele substitui todas as anotações com o pino vermelho padrão, mas desejo retornar as exibições para as outras anotações, mas manter o local do usuário como o sinalizador azul padrão. Existe uma maneira de fazer isso simplesmente ou eu tenho que criar uma nova visão de anotação e retornar a correta dependendo da anotação?
Agora eu tenho algo como:
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
if (annotation.coordinate == locationManager.location.coordinate) {
return nil;
}else {
MKAnnotationView *annotationView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"Beacon"];
// Button
UIButton *button = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
button.frame = CGRectMake(0, 0, 23, 23);
annotationView.rightCalloutAccessoryView = button;
annotationView.canShowCallout = YES;
return annotationView;
}
}
Mas não consigo equacionar os dois porque não consigo extrair a propriedade coordinate do argumento de anotação.
Alguém conhece alguma solução para isso?