2010-10-31 13 views
0

J'applique l'application basée sur MAPKit, En ce que j'ai eu un problème avec l'affichage de broches. Parfois, ils arrivent en haut de la vue callOut. J'ai utilisé le code suivant pour envoyer les broches arrière,Comment renvoyer les épingles dans la vue cartographique dans la vue d'appel?

- (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views 
{ 
      for (MKAnnotationView* annotationView in views) 
     { 

       [mapView sendSubviewToBack:annotationView]; 
     } 
} 

S'il vous plaît me aider si quelque chose manque, il est très urgent.

Merci à l'avance,

S.

Répondre

0

Ne me souviens pas si la bulle est une légende de la sous-vue annotationView, si elle est la suivante devrait fonctionner ... Si vous codez pour iOS 4.0 et au-dessus, vous pouvez utiliser ces

- (void)mapView:(MKMapView *)mapView didDeselectAnnotationView:(MKAnnotationView *)annotView { 
    [mapView sendSubviewToBack:annotView]; 
} 

- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)annotView { 
    [mapView bringSubviewToFront:annotView]; 
} 

Sinon, essayez la mise en œuvre à l'intérieur du annotationView

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { 
    UITouch *touch = [touches anyObject]; 
    CGPoint point = [touch locationInView:self]; 
    if ([self pointInside:point withEvent:event]) { 
     UIView *mySuperview = self.superview; 
     while (mySuperview && ![mySuperview isKindOfClass:[MKMapView class]]) { 
      mySuperview = mySuperview.superview; 
     } 
     if (mySuperview) { 
      [mySuperview bringSubviewToFront:self]; 
     } 
    } 
} 

Hope this helps

+0

Merci beaucoup. – sekhar

+0

De rien, si cela a fonctionné comme prévu, vous pourriez marquer ma réponse comme correcte :) – tsakoyan

1

Dans IOS 5 et IOS 6, j'essaie cela et il est ok

la broche ne se chevauchent CalloutView. J'utilise personnalisé calloutview, dans le fichier Base calloutView I ajouter ceci:

- (void)didMoveToSuperview { 
    [super didMoveToSuperview]; 
    [self.superview bringSubviewToFront:self]; 
}