2013-04-28 10 views

cevap

0

pusula düğmesinin konumunu değiştirmek mümkün değildir. Lütfen bir feature request dosyasını gönderin.

3

çok ortodoks ama o işlerle.

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

bu benim için çalışmaz. Altyazıları basarak günlük gördüm, "GMSCompassButton" öğesi yok. – regeint

0

"GMSCompassButton" için aradığınız geçici çözüm artık çalışmıyor (Google Maps SDK 1.4).

+0

Nedeni "GMSCompassButton" artık "GSMUISettingsView" adlı başka bir alt görünüme sarılmış durumda. Çalışması için başka bir döngü grubu eklemeniz gerekecek. –

0

SDK 1.5 ile çalışan en yeni çözüm aşağıdadır.

- (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]; 
       } 
      } 
     } 
    } 
} 

Bu işlevi, harita görünümünüzle parametre olarak çağırabilir ve gitmekte fayda var demektir.

0

Google Haritalar SDK 1.5'in yeni sürümü, GMSMapView için bir paddern özelliği içerir. Artık UI elemanlarının gösterileceği alanı ayarlamak mümkündür.

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

Bu Kod Pusula Düğmesini 64 pikselde aşağı doğru hareket ettirecektir.

İlgili konular