2013-04-28 21 views

risposta

0

Non è possibile modificare la posizione del pulsante bussola. Si prega di presentare un numero feature request.

3

Non molto ortodossa ma funziona.

for (UIView *view in gmMapView.subviews) { 
     NSRange isRange = [view.description rangeOfString:@"GMSCompassButton"]; 
     if (isRange.location != NSNotFound) { 
      CGRect frame = view.frame; 
      frame.origin.y=55; 
      frame.origin.x=gmMapView.frame.size.width/2; 
      [view setFrame:frame]; 
     } 
    } 
+1

questo non funziona per me. Ho visto il registro stampando le sottoview, non c'è nessun elemento "GMSCompassButton". – regeint

0

La soluzione per cercare "GMSCompassButton" non funziona più (Google Maps SDK 1.4).

+0

Il motivo è "GMSCompassButton" è ora racchiuso in un'altra sottoview chiamata "GSMUISingsViewView". Dovrai aggiungere un altro set di loop per farlo funzionare. –

0

Ecco l'ultima soluzione alternativa che funziona con SDK 1.5.

- (void)moveCompassButton:(GMSMapView *) map{ 
    for(UIView *view in [map subviews]){ 
     NSRange isRange = [view.description rangeOfString:@"GMSUISettingsView"]; 
     if(isRange.location != NSNotFound){ 
      for(UIView *subview in [view subviews]){ 
       NSRange isRange2 = [subview.description rangeOfString:@"GMSCompassButton"]; 
       if(isRange2.location != NSNotFound){ 
        CGRect frame = view.frame; 
        frame.origin.y = 55; 
        frame.origin.x = map.frame.size.width/2 - 10; 
        [view setFrame:frame]; 
       } 
      } 
     } 
    } 
} 

Puoi chiamare questa funzione con la tua vista mappa come parametro e sei a posto.

0

La nuova versione di Google Maps SDK 1.5 include una proprietà paddern per GMSMapView. Ora è possibile impostare l'area in cui verranno mostrati gli elementi dell'interfaccia utente.

4
-(void)viewDidAppear:(BOOL)animated{ 
mapView.padding = UIEdgeInsetsMake (64,0,0,0); 
} 

Questo codice Sposterà il pulsante Bussola verso il basso in 64 pixel.