如何在GMSMapView前面添加按钮

时间:2018-10-05 00:10:27

标签: ios swift google-maps gmsmapview

我正在尝试在GMSMapView视图前面添加一个按钮。 这是我的代码:

@IBOutlet weak var testButton: UIButton! 
@IBOutlet weak var mapView2: GMSMapView! 
override func viewDidLoad() {
    super.viewDidLoad()
    loadView()
}

然后是loadView()方法

override func loadView() {
    let camera = GMSCameraPosition.camera(withLatitude: 54.2785691, longitude: -8.4620978, zoom: 18.0)
    let mapView2 = GMSMapView.map(withFrame: CGRect.zero, camera: camera)
    view = mapView2 
    mapView2.bringSubviewToFront(testButton)
}

这是我得到的错误:

  

线程1:致命错误:在展开可选值时意外发现nil

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

您可以尝试

class MyVc:UIViewController { 
  @IBOutlet weak var testButton: UIButton! 
  @IBOutlet weak var mapView2: GMSMapView! 
  override func viewDidLoad() {
    super.viewDidLoad()
    let camera = GMSCameraPosition.camera(withLatitude: 54.2785691, longitude: -8.4620978, zoom: 18.0)
    mapView2.animate(to: camera)
    view.bringSubviewToFront(testButton)
  }
}

我希望IB中的用户界面

View-> 
    -testButton
    -mapView2

顺便说一句,您可以重新排列视图以代替bringSubviewToFront

View-> 
    -mapView2
    -testButton

底部元素在前面

对于此类问题,也不要实施loadView,因为仅当您以编程方式创建vc或要添加除IB之外的其他项目时才重要,在后一种情况下,您应该调用super.loadView()