2012-10-15 7 views
2

Avec iOS < 6.0, nous avons été en mesure de repositionner le lien "Google" sur la carte (en parcourant les sous-vues de la carte). Maintenant avec iO6, il y a un lien "légal" et c'est un MKAttributeLabel. Une classe privée que nous ne pouvons pas manipuler ...Cartes et mention légale

Mon problème est que je dois ajouter une sous-vue de pied de page à ma carte et elle cachera le lien légal ... Comment puis-je résoudre ce problème sans n'importe quelle application Stocker le rejet? Puis-je créer un autre bouton légal et l'ajouter là où je veux dans ma vue de carte? Je n'ai aucune idée de ce que je suis capable de faire ...

+3

Je vote pour clore cette question hors-sujet parce qu'elle traite de conseils juridiques et non de conseils en matière de programmation. – durron597

+0

La question ne concerne PAS réellement les conseils juridiques. – JasonMArcher

Répondre

0

La vue de bas de page doit-elle être à l'intérieur de la limite de la carte, pourquoi ne pas placer la carte et le pied de page dans la même vue?

+0

Désolé c'est ce que j'ai fait. Footer et Map sont des sous-vues d'une vue d'ensemble. Le pied de page est transparent et recouvre la carte – Pierre

+1

Bien si le problème est qu'il cache la carte, ne les faites pas se chevaucher – Craig

+2

Problème résolu: J'utilise maintenant Route-Me et Bing map. Désolé Apple mais mettez à jour votre API ... – Pierre

1

Il existe quelques réponses recommandant de déplacer l'étiquette légale dans le viewDidAppear de votre contrôleur de vue, mais cela ne fonctionne pas si vous redimensionnez votre vue de carte (comme je le suis).

Le meilleur moyen est de sous-classer le MKMapView et de remplacer la méthode layoutSubviews. Dans mon exemple, j'ai juste besoin de pousser l'étiquette légale au-dessus d'une barre d'outils semi-transparente.

 
-(void)layoutSubviews 
{ 
    [super layoutSubviews]; 
    UILabel *legalLabel; 
    for(UIView *view in self.subviews) 
    { 
     if([view isKindOfClass:[UILabel class]]) 
     { 
      legalLabel = (UILabel *)view; 
      break; 
     } 
    } 
    legalLabel.center = CGPointMake(legalLabel.center.x, self.bounds.size.height - 55.0f); 
} 
+0

mauvaise idée parce que vous dépendez de chaque changement sur iOS. – Pierre