iOS Google 地图 API - 视图和标签不会覆盖在地图上

iOS Google Maps API - Views and Labels will not Overlay Over the Map

我使用 Google Maps SDK 为 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
    }
}

故事板如下:

试试这个。拖动新视图

进入你的故事板,并将它放在你的标签下面,就像图片一样。

然后CTRL+从"Map View"拖到"View"然后shift+点击下面的选项然后点击"add constraints"

这只是设置简单的自动布局约束。 CTRL+将 "Map View" 拖到视图控制器的 class 中。

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

(其中 MapView 是 Storyboard 中的 "Map View")

现在,您只需创建一个执行相同操作的子视图,而不是您的实际主视图将地图添加为一个视图,并且您可以完全控制什么在什么之上!

我遇到了同样的情况,下面是我如何解决的。

  • 在您的情节提要中,您有一个名为 'Map'
  • 的视图
  • 您创建了以下相机:

    let camera = GMSCameraPosition.cameraWithLatitude(37.4987309,
    longitude: -77.4700891, zoom: 10)
    
  • Control 将 'Map' View 拖到您的视图控制器上并为其命名,例如 mapView

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