Pergunta

Eu tenho um objeto que implementa a MKAnnotation protocolo:

#import <Foundation/Foundation.h>
#import <MapKit/MapKit.h>
@interface VoiceMemoryAnnotation : NSObject <MKAnnotation> {
    NSString * blobkey;
}
@property (nonatomic, retain) NSString * blobkey;

-(id)initWithBlobkey:(NSString *) key andCoordinate:(CLLocationCoordinate2D) c;
@end

Adicionar este objeto um mapa funciona perfeitamente desde que eu possa ver o vermelho pinos que estão sendo ignorados.No entanto, o problema surge quando quero definir este objeto para mostrar um texto explicativo.

Eu não posso fazer anotação.showCallOut=SIM, porque um "MkAnnotation" não tem essa propriedade, mas um MkAnnotationView faz.Como posso contornar isso?

Tentei implementar o mapa de retorno de chamada "viewForAnnotation" para verificar "VoiceMemoryAnnotation" e vou tentar voltar com um novo "MkAnnotationView" e defina o respectivo texto explicativo = SIM, mas eu começo a receber uma falha de segmentação quando eu faço isso.

Alguma idéia do que eu"m fazendo de errado?

Foi útil?

Solução

Primeiro você precisa criar o seu anotação objeto (aquele que implementa o MKAnnotation protocol) e adicioná-lo ao seu mapa usando algo como

VoiceMemoryAnnotation*VMA = [[VoiceMemoryAnnotation alloc] init];
VMA.title = @"Title String";
VMA.subtitle = @"Subtitle String";

[self.mapView addAnnotation:VMA];

Que automaticamente irá chamar o método a seguir o que você vai precisar para implementar:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
 {
     MKPinAnnotationView*singleAnnotationView = [[MKPinAnnotationView alloc]initWithAnnotation:annotation reuseIdentifier:nil];
     singleAnnotationView.canShowCallout = YES;

     return singleAnnotationView;
 }

Nesta implementação MKAnnotationView não vai funcionar, ele precisa ser MKPinAnnotationView.

Outras dicas

Eu não tenho certeza eu entendo completamente a sua pergunta, mas eu me pergunto, é MKMapViews's - (void)selectAnnotation:(id <MKAnnotation>)annotation animated:(BOOL)animated o que você está procurando?

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