2013-04-28 6 views

答えて

0

コンパスボタンの位置を変更することはできません。 feature requestを提出してください。

3

あまり正統ではありませんが動作します。 "GMSCompassButton" を探して

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

これは私のためには機能しません。私はサブビューを印刷してログを見ましたが、 "GMSCompassButton"項目はありません。 – regeint

0

この問題を回避するには、それ以上(GoogleマップSDK 1.4)が動作していません。

+0

"GMSCompassButton"が "GSMUISettingsView"と呼ばれる別のサブビューの中にラップされるようになりました。それを動作させるには、forループの別のセットを追加する必要があります。 –

0

ここでは、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]; 
       } 
      } 
     } 
    } 
} 

マップビューでパラメータとしてこの関数を呼び出すことができます。

0

Google Maps SDK 1.5の新しいリリースには、GMSMapViewのpaddernプロパティが含まれています。 ここで、UI要素が表示される領域を設定することができます。

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

このコードは、コンパスボタンを64ピクセル下に移動します。

関連する問題