我已按照 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)
}
}
最佳答案
当 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/