ios - 调整谷歌地图 Swift 4 的大小

标签 ios swift google-maps

我已按照 Google map 入门教程进行操作,但 map 位于状态栏下方,我不希望这样。因此,我使用 GMSMapView 的类属性创建了另一个 View ,并将创建的 map 链接到它。但是,当我运行代码时,我得到:

terminating with uncaught exception of type NSException

然后它转到 AppDelegate.swift 文件说:

Thread 1: signal SIGABRT

我不知道自己做错了什么,也找不到解决问题的答案。

这是我的 swift 4 代码:

import UIKit
import GoogleMaps

class FirstViewController: UIViewController {
    @IBOutlet weak var mapView: GMSMapView!

    override func viewDidLoad() {
        super.viewDidLoad()
        GMSServices.provideAPIKey("AIzaSyDNpN4_CfRBAY60U7qgWQIqJAwvjEFMwNk")
        let camera = GMSCameraPosition.camera(withLatitude: 41.3114, longitude: -105.5911, zoom: 15)
        mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera)

        view.addSubview(mapView)
    }
}

Main.Storyboard picture

最佳答案

当 Storyboard中有 mapview 时,您不需要再次初始化它并添加为 subview 。

你应该在 AppDelegate 中移动设置 API key

class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?


    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        GMSServices.provideAPIKey("AIzaSyDNpN4_CfRBAY60U7qgWQIqJAwvjEFMwNk")
        return true
    }
}

View Controller

class ViewController: UIViewController{

    @IBOutlet weak var mapView: GMSMapView!

    override func viewDidLoad() {
        super.viewDidLoad()
        mapView.camera = GMSCameraPosition.camera(withLatitude: 41.3114, longitude: -105.5911, zoom: 15)
    }
}

关于ios - 调整谷歌地图 Swift 4 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50684324/

相关文章:

css - 如何使 Google map 跨度为页眉和页脚之间 100% 的剩余高度?

objective-c - 如何检测由于没有连接而调用 didFailWithError ?

ios - 一个月中的周末天数

ios - 如何使用 native 崩溃报告在 Swift 4 中实现异常/错误处理?

swift - SwiftUI 中 ObjectBinding 和 List 的误导性错误

swift - 类型抛出函数的无效转换

javascript - InfoWindow 图形 "messed up"使用 Google Maps API v3

javascript - HTML5 地理定位与谷歌地图地理定位 api

ios - 使用 objc_setAssociated 和 objc_getAssociated 的条件

ios - 自定义 UIScrollView 滚动条颜色?