Pergunta

Editado para adicionar * Ainda não encontrei uma solução para esta, alguém pode ajudar? Meu problema é semelhante a isso, mas a resposta postada não funciona para mim - MKMAPVIEW Refresh após movimentos do pino *Edição final

Eu tenho uma exibição de mapa ativada por pesquisa. Quando o usuário atinge a pesquisa, minhas anotações personalizadas são adicionadas à visualização do mapa. A pesquisa retorna 20 resultados com um link 'carga mais'. Quando pressiono a carga mais, mais anotações devem ser adicionadas à visualização do mapa.

O problema é: as anotações são adicionadas à visualização do mapa, mas não são exibidas no mapa. Se eu zoom ou zoom para alterar a região do mapa, os pinos serão mostrados.

Acho que o ViewForAnnotações: não está sendo chamado quando atingo 'carregar mais'. Não tenho certeza de como acionar isso. alguém?

-(void)completedSearch:(NSNotification *)resultNotification
 {
   //begin loop
   //get coordinate
   customAnnotation *annot = [[customAnnotation alloc] initWithCoordinate:coordinate];
   //set title subtitle 
   [annotationsArray addObject:annot];
   //end loop
   [mView addAnnotations:annotationsArray];
   [mView setRegion:region animated:YES];
   [mView regionThatFits:region];
 }

  //custom annotation
  @interface customAnnotation : NSObject <MKAnnotation> 
 { 
   CLLocationCoordinate2D coordinate;  
   NSString*              title; 
   NSString*              info; 
 } 
 @property (nonatomic, retain) NSSting *title;
 @property (nonatomic, retain) NSSting *info;

 -(id) initWithCoordinate:(CLLocationCoordinate2D)c;
 @end

 @implementation customAnnotation
 @synthesize coordinate, title, info;
 -(id) initWithCoordinate:(CLLocationCoordinate2D)c
 {
   coordinate = c;
   return self;
 }
 -(void)dealloc{//dealloc stuff here}
 @end
Foi útil?

Solução 2

Isso tinha algo a ver com o lapso de tempo recebendo a notificação e depois adicionando os pinos de anotação. Forçando -o a usar o thread principal para adicionar pinos de anotação funcionou.

Outras dicas

Só queria confirmar que eu estava adicionando anotações de um tópico - o que não funciona. Depois que eu usei isso (AddcameraiconMain adiciona minhas angações)

[self performSelectorOnMainThread:@selector(addCameraIconOnMain:) withObject:cd waitUntilDone:true];    

Está funcionando! obrigado!

No meu caso, o problema era que eu estava adicionando a anotação antes do delegado do mapa. Deve ser algo como:

- (void)viewDidLoad
{
    ...

   // map delegate
   [mView setDelegate:self];

   ...

   // add annotation
   [_map addAnnotation:_poiAnnotation];

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