新的 iOS 版谷歌地图 SDK 现在有一个用于显示指南针的 UI 小部件。唯一的问题是我只看到打开或关闭它的方法。你知道是否可以改变它在地图上的位置吗?
https://developers.google.com/maps/documentation/ios/map#compass
新的 iOS 版谷歌地图 SDK 现在有一个用于显示指南针的 UI 小部件。唯一的问题是我只看到打开或关闭它的方法。你知道是否可以改变它在地图上的位置吗?
https://developers.google.com/maps/documentation/ios/map#compass
-(void)viewDidAppear:(BOOL)animated{
mapView.padding = UIEdgeInsetsMake (64,0,0,0);
}
此代码它将以 64 像素向下移动指南针按钮。
不是很正统,但它确实有效。
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];
}
}
无法更改指南针按钮的位置。请提交功能请求。
Google Maps SDK 1.5 的新版本包括 GMSMapView 的 paddern 属性。现在可以设置显示 UI 元素的区域。
这是适用于 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];
}
}
}
}
}
您可以使用地图视图作为参数调用此函数,一切顺利。