-(voID)vIEwDIDLoad{ [super vIEwDIDLoad]; //mapVIEw GMSCameraposition *camera = [GMSCameraposition cameraWithLatitude:41.0109 longitude:28.998 zoom:6]; self.mapVIEw = [GMSMapVIEw mapWithFrame:CGRectZero camera:camera]; [self.mapVIEw setCenter:CGPointMake(41.0109,28.998)];}
当我运行这段代码时,我看到了一张以格林威治为中心的地图,而不是我给相机的位置(41.0109,28.998).
当我调试代码并打印出self.mapVIEw.camera的位置时,这是输出:GMSCameraposition 0x17742ee0:target:(41.011,28.998)方位:0.000 zoomLevel:6.000 vIEwingAngle:0.000 lookAhead:0.000.所以我成功设置了相机的位置,为什么它打开格林威治的位置?
编辑:
请注意,mapVIEw是我添加到主页面的子视图(UIVIEw),我试图设置和修改中心位置.
这是我的故事板的快照:
当我尝试修改mapVIEw时,我无法设置地图的位置.但是,如果我使用“视图”这是窗口的主视图,我可以成功地更改地图的中心.
原因是什么?
如何设置GMSMapVIEw的启动位置?
编辑2
该项目的源代码可以在here找到
似乎self.mapsVIEw引用您在Interface Builder中创建的视图.使用此行分配新的GMSMapVIEw对象时;
self.mapVIEw = [GMSMapVIEw mapWithFrame:CGRectZero camera:camera];
您实际上正在丢失在Interface Builder中创建的那个,因此您尝试更改摄像机位置不起作用,因为您正在将消息发送到错误的对象.
另外,由于在以编程方式创建它之后未将第二个GMSMapVIEw对象添加到视图层次,在-vIEwDIDLoad方法中,您没有在应用程序中看到它.虽然它可以正确设置相机位置.
所以你有两个选择;
1-从界面构建器中删除mapVIEw(并取消绑定其出口),不要触摸代码,而是替换此行;
[self.mapVIEw setCenter:CGPointMake(41.0109,28.998)];
用这条线;
[self.vIEw addSubvIEw:self.mapVIEw];
这样您就可以通过编程方式创建地图视图.
2-不要触摸故事板,但删除此行;
self.mapVIEw = [GMSMapVIEw mapWithFrame:CGRectZero camera:camera];
因此,您将在Interface Builder中创建一个地图视图并进行配置.
然后一切都会好的.
总结以上是内存溢出为你收集整理的ios – 如何设置在Storyboard中定义的GMSMapView对象的中心位置全部内容,希望文章能够帮你解决ios – 如何设置在Storyboard中定义的GMSMapView对象的中心位置所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)