我遇到了一个非常奇怪的错误,它导致 GMSMapView 的 GMSCamera 出现偏离中心。我在情节提要中有一个带有 GMSMapView 的视图控制器。在地图视图的中心,我有一个图像视图,它始终与相机目标对齐(此功能类似于 Lyft 应用程序,您可以在其中围绕一个图钉平移地图,并对您的取件坐标进行地理编码地点)。90% 的时候,当我调用 camera.target 并获取相机的当前坐标时,我会得到当前位于屏幕中心的任何坐标的预期结果。但是,如果我注销我的应用程序并重新登录,则在显示地图时,它看起来好像相机不在屏幕上。它对甚至不在视图中的坐标进行地理编码。我想也许地图的大小是随机增长的,但它具有自动布局约束,使其固定在其父视图的边缘。所以我认为这与此无关。当此错误出现时,我可以转到另一个屏幕并返回,错误就消失了。在这一点上,我只是不确定相机怎么会变得不居中。对不起,文字墙,但非常感谢任何帮助。
更新:我只是仔细检查了发生这种情况的 iOS 版本,我似乎只能在 iOS 7 上重现它。iOS 8 按预期工作。另外,这是一张照片,所以你可以看到发生了什么(描述起来有点困难,所以希望图片比我的描述更好):
如您所见,地图以名为 Mt. Adams 的区域为中心。但是,当我询问相机它的目标是什么时,它会返回一个坐标,该坐标位于导航栏下方的屏幕左上角。如果我一直缩放并且存在此错误,则地图视口中心与相机目标之间的距离将变得更大。