在Swift中将GMSMapView分配给UIView

4

我创建了这两个变量

var googleMap = GMSMapView()

@IBOutlet weak var mapView: UIView!

我在viewDidLoad()函数中将googleMap赋值给mapView。
    override func viewDidLoad() {
        super.viewDidLoad()
        self.mapView = self.googleMap //Throwing error as 'Google Maps SDK for iOS must be initialized via [GMSServices provideAPIKey:...] prior to use'
}

我在AppDelegate.swift提供密钥。
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    // Override point for customization after application launch.
    GMSServices.provideAPIKey("AIzaSyB6aQxEmza-wUpOPU60aREWReRIAEAvrHs")
    return true
}

有没有人能指导我解决这个问题?

2个回答

7

不要以那种方式将GMSMapView分配给您的UIView。下面是您应该这样做的方法:

将您的UIView类更改为GMSMapView enter image description here


谢谢你,Luke!但我想手动编写代码来完成它,我可以这样做吗? - Ishwar
@ISHWARCHOUHAN 不,你不能这样做,它是在编译时设置的,而不是运行时。 - LuKenneth

0

首先,您应该从故事板将UIView的类更改为GMSMapView,然后您应该在视图控制器中从该视图创建一个IBOutlet,并设置相机等内容。

@IBOutlet weak var mapView: GMSMapView!    
override func viewDidLoad() {
    super.viewDidLoad()

    mapView.camera = camera
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接