Question

Edité à Ajouter * Je ne l'ai pas trouvé une solution pour celui-ci encore, quelqu'un peut-il aider s'il vous plaît? Mon problème est similaire à cela, mais la réponse affichée ne t pas de travail pour moi - MKMapView rafraîchir après la broche se déplace * Fin Modifier

J'ai une recherche a permis de carte. Lorsque l'utilisateur touche la recherche, mes annotations personnalisées sont ajoutées à la vue de la carte. La recherche renvoie 20 résultats avec un lien « charge plus ». Quand je frappe charger plus, plus les annotations doivent être ajoutées au plan.

Le problème est - annotations est ajouté à la vue de la carte, mais ne sont pas affichés sur la carte. Si je zoom avant ou un zoom arrière pour changer la région de la carte, les broches sont représentés.

Je trouve que viewForAnnotations: n'est pas appelé quand je frappe "charge plus. Je ne sais pas comment déclencher cela. une?

-(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
Était-ce utile?

La solution 2

avait quelque chose à voir avec le laps de temps réception de la notification, puis en ajoutant les broches d'annotation. Le forçant à utiliser le fil conducteur pour ajouter des broches d'annotation travaillé.

Autres conseils

je voulais juste confirmer i ajoutais annotations à partir d'un fil - qui ne marche pas le travail. une fois que j'utilisé ce (addCameraIconOnMain ajoute mes annoations)

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

le marché! merci!

dans mon cas, le problème est que j'ajoutais l'annotation avant que le délégué de la carte. Il doit être quelque chose comme:

- (void)viewDidLoad
{
    ...

   // map delegate
   [mView setDelegate:self];

   ...

   // add annotation
   [_map addAnnotation:_poiAnnotation];

   ...
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top