在我的应用程序中,我使用的是Google Maps SDK 我的应用程序中有一个全屏地图 问题是Google徽标从导航选项卡后面的屏幕底部被切除。 我不知道要改变什么来调整地图大小以在屏幕上显示徽标。 我会附上问题的截图,但我没有足够的声誉。
由于我对Obj-C和Xcode编程相当新,我可能忘记发布地图实现必不可少的部分代码。
- (void)viewDidLoad
{
[super viewDidLoad];
_firstLocationUpdate = NO;
_errorView.layer.cornerRadius = 5;
_errorView.clipsToBounds = YES;
GMSCameraPosition *camera = [GMSCameraPosition cameraWithTarget:_mapView.myLocation.coordinate zoom:14];
_mapView = [GMSMapView mapWithFrame:self.view.frame camera:camera];
_mapView.delegate = self;
[self.view addSubview:_mapView];
[self.view sendSubviewToBack:_mapView];
}
我设法强迫它一点点,但这是非常难看的做法。
_mapView = [GMSMapView
mapWithFrame: CGRectMake(
0, -50,
self.view.frame.size.width, self.view.frame.size.height)
camera: camera];
[self.view addSubview:_mapView];
[self.view sendSubviewToBack:_mapView];
答案 0 :(得分:1)
另一种选择是填充控件,同时保持视图大小相同:
// top, left, bottom, right
_mapView.padding = UIEdgeInsetsMake(0.0, 0.0, 50.0, 0.0);
使用SDK 1.8进行测试,它会移动Google徽标和各种控件。
Google SDK documentation for the padding
property:
控制视图的“可见”区域。 通过应用填充,可以创建视图边缘周围的区域,该区域将包含地图数据,但不包含UI控件。
如果填充不平衡,视图的视觉中心将根据需要移动。填充也会影响投影属性,因此可见区域将不包括填充区域。 GMSCameraUpdate fitToBounds将确保将此填充和所请求的任何填充都考虑在内。
此属性可以在基于UIView的动画块中设置动画。
答案 1 :(得分:0)
你非常接近,你只需要设置地图框的大小,使其不包括标签视图后面的空间。所以像这样:
_mapView = [GMSMapView
mapWithFrame: CGRectMake(
0,
0,
self.view.frame.size.width,
self.view.frame.size.height - {the height of the tab view})
camera: camera];