6

新的 iOS 版谷歌地图 SDK 现在有一个用于显示指南针的 UI 小部件。唯一的问题是我只看到打开或关闭它的方法。你知道是否可以改变它在地图上的位置吗?

https://developers.google.com/maps/documentation/ios/map#compass

4

5 回答 5

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

此代码它将以 64 像素向下移动指南针按钮。

于 2014-05-06T08:37:02.217 回答
3

不是很正统,但它确实有效。

  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];
        }
  }
于 2013-04-29T07:05:21.327 回答
0

无法更改指南针按钮的位置。请提交功能请求

于 2013-04-29T06:17:03.893 回答
0

Google Maps SDK 1.5 的新版本包括 GMSMapView 的 paddern 属性。现在可以设置显示 UI 元素的区域。

于 2013-10-01T09:49:52.613 回答
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];
                }
            }
        }
    }
}

您可以使用地图视图作为参数调用此函数,一切顺利。

于 2013-09-25T15:10:06.330 回答