iOS Google Maps API - 视图和标签不会叠加在地图上

时间:2015-12-03 17:00:41

标签: ios swift google-maps google-maps-api-3 google-maps-sdk-ios

我使用Google Maps SDK for iOS创建了Google地图视图,地图显示正常。然后我在地图上添加了一个标签。当我运行此标签时,标签不会显示在地图上方。我已经尝试将标签移动到不同的位置,弄乱了约束,但似乎没有任何东西使标签显示出来。我也尝试将标签放在View中,而不是它是Map的孩子。它仍然不会显示。

以下是相关代码:

import UIKit
import GoogleMaps

class MapViewController: UIViewController, GMSMapViewDelegate {


    override func viewDidLoad() {
        super.viewDidLoad()
        let camera = GMSCameraPosition.cameraWithLatitude(37.4987309,
            longitude: -77.4700891, zoom: 10)
        let mapView = GMSMapView.mapWithFrame(CGRectZero, camera: camera)

        mapView.delegate = self
        self.view = mapView
    }
}

这是故事板: Here is the storyboard

enter image description here

2 个答案:

答案 0 :(得分:2)

试试这个。拖动新视图

enter image description here

进入故事板并将其放在您的标签下,如图片所示。

enter image description here

然后按CTRL +从“地图视图”拖动到“视图”并移动并单击以下选项并单击“添加约束”

enter image description here

这只是设置简单的自动布局约束。 CTRL +将“地图视图”拖动到视图控制器的类中。

self.view = mapView替换为self.theMapView.addSubview(mapView)

(其中theMapView是故事板中的“地图视图”)

现在,您不是将实际的主视图添加为视图,而是创建一个执行相同操作的子视图,而您可以完全控制所发生的内容!

答案 1 :(得分:0)

我遇到了同样的情况,这就是我如何解决它。

  • 在您的故事板中,您有一个名为“地图”的视图
  • 您创建了以下相机:

    let camera = GMSCameraPosition.cameraWithLatitude(37.4987309,
    longitude: -77.4700891, zoom: 10)
    
  • 控制将“地图”视图拖动到视图控制器上并将其命名为任何名称,例如mapView

  • self.mapView.camera = camera self.mapView.bringSubview(toFront: yourLabelToBePlacedOnTop)