我有一个GMSMapView
不能填满整个屏幕,但在iPad application
中却占了整个屏幕的2/3。调用UIViewController
时,地图将等待用户位置更新并为MapView
设置动画以使其位于该位置的中心:
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
let location = locations.last!
if(!has_first_location) {
has_first_location = true
let pos = GMSCameraPosition.camera(withTarget: location.coordinate,
zoom: 18.0)
self.mapView!.animate(to: pos)
}
}
此处的序言是,此问题存在于iOS 12.1中,但在iOS 12.0.1中不存在(两个实际设备均为9.7英寸iPad)。这是视图的图像:
如您所见,视图不在用户上方居中,而是位于用户东南。如果我画一个GMSPolyline
或类似的字体,并尝试以其边界为中心填充,也会发生这种情况。当我立即移动到摄影机位置而不是为其设置动画时(即使用moveTo()
而不是animateTo()
时,不会发生这种行为。
在将地图的顶部,右侧和底部边缘固定到超级视图时会遇到一些约束,并且将其固定在侧边栏的右侧边缘。 GMSMapView
不是以编程方式创建的,而是在情节提要中设置的。
当前,我尝试在子层上设置帧,这似乎是问题的根源。我只是不知道如何可靠地选择需要重新构造的子层,这似乎也不是理想的解决方案。任何帮助将不胜感激。