Pergunta

Ei, todos, eu tenho uma pergunta densa sobre o MAPKIT para o iPhone.

Estou usando a estrutura do MAPKIT e o que estou tentando fazer é basicamente clicar em um pino, recarregá -lo e depois mostrar que é a chamada depois que ele foi adicionado novamente.

Este é o código que estou tentando começar a trabalhar ..

-(void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view{
    NSLog(@"count of selected Annotations: %d",[mapView selectedAnnotations].count);
    MKAnnotation* pin = view.annotation;
    [mapView deselectAnnotation:pin animated:FALSE];
    [mapView removeAnnotation:pin];
    [mapView addAnnotation:pin];
    [self.mapView selectAnnotation:pin animated:TRUE];

Algumas observações: se eu comentar as notações de remoção e addannotation linhas, entro em um loop infinito porque, quando seleciononação: PIN, o retorno de chamada (que é esse método) é chamado ... Caso contrário, não é, mas o que é ? Por que não é

[self.mapView selectAnnotation:pin animated:TRUE]; 

sendo chamado?

Eu já li muito e quebrei minha cabeça por muitas horas tentando descobrir isso que uma explicação e uma correção para o meu código seriam muito mais úteis do que um link.

Desde já, obrigado. ~ Fydo

Foi útil?

Solução

Então, eu respondi minha própria pergunta ... parece que a maneira mais fácil de mudar a anotação ao clicar nela é a seguinte:

-(void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view{
    MKAnnotation* pin = view.annotation;
    UIImageView * blackPin = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"PinUnchecked.png"]];
   [[mapView viewForAnnotation:pin] addSubview:blackPin];

Este método delegado será chamado, então uma bolha de anotação será exibida e o AnoTationView mudará sua imagem ... o que é tudo o que eu precisava fazer ...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top