2010-06-09 8 views
1

J'ai une interface avec mapView et UITableView. Les données sont chargées à partir d'un serveur, et les annotations sont créés et ajoutés à la carte avecDes annotations personnalisées MapKit sont ajoutées à la carte, mais ne sont pas visibles sur la carte

[mapView addAnnotation:truck]

la tableview est ensuite rempli par le tableau des thats retured de

[mapView annotations]

une fois ce processus est terminé, je vérifie le nombre d'annotations sur la carte avec [[mapView annotations] count] appelé chaque fois que je clique sur une cellule dans la table et son égal au nombre il doit être, de sorte que toutes les annotations sont ajoutées sur la mapView, mais pour une raison quelconque Je ne vois pas d'annotat ions dans le simulateur. Les images sont nommées juste comme elles sont assignées dans le AnnotationView personnalisé, la fonction loadAnnotation est faite correctement, etc ... je ne sais pas ce que cela pourrait être, mais j'ai regardé l'associé entre le fichier image et ses wheres chargé une centaine de fois pour trouver un écart, mais tout semble bien.

Un point intéressant est que quand j'imprimer et coordonnons valeur après avoir cliqué sur la cellule (rappelez-vous ces données proviennent directement de [mapView annotations], il semble bon ... mais pour une raison quelconque la vue d'annotation isnt affichée.

donc je suppose que si je pouvais avoir la réponse à une question, il serait, quelles sont les causes possibles pour une Mapview contenir plusieurs annotations, mais de ne pas montrer tout sur la carte?

Merci

éDITÉE AVEC IMPORTANT INFOS COMPLÉMENTAIRES

Il semble y avoir une déconnexion entre ce qui est affiché sur ma carte dans le simulateur et ce que je vois dans l'objet mapView. Par exemple, lorsque je sélectionne une ligne dans la tableView, je vous appelle:

[mapView setRegion:MKCoordinateRegionMake([annotation coordinate], MKCoordinateSpanMake(.01, .01)) animated:YES];

et cela n'a aucun effet sur la carte dans le simulateur. J'ai vérifié que la coordonnée passée est en fait une coordonnée valide, mais cela ne semble pas important parce que la carte ne répond pas. Je pensais que ce pourrait être quelque chose de mal avec mon .xib, mais tout est correctement connecté. délégué est la sortie et mapView en tant que point de vente de référence.

Est-ce que quelqu'un comprend maintenant ce qui peut se passer?

Répondre

0

Cette ligne:

mapView = [[MKMapView alloc] initWithFrame:self.view.bounds];

a été crée déconner tout haut. Une fois que je l'ai commenté, l'application a commencé à bien fonctionner.

0

Cela ressemble vraiment à des images manquantes. Essayez de remplacer vos annotations personnalisées par MKPinAnnotations pour les tester, et vérifiez si vos annotations sont visibles à ce moment-là.

Avez-vous implémenté la fonction de délégation suivante?

  • (MKAnnotationView *) mapView: (MKMapView *) mapView viewForAnnotation: (id) annotation;