在Google地图上加载标记的自定义信息窗口时,iOS应用会冻结

Sta*_*ley 8 ios google-maps-sdk-ios swift

我正在尝试在iOS应用上的Google Maps Marker上实现自定义信息窗口.(正如这里这里所做的那样.)

UIView为它创建了一个xib和一个类.它被称为CustomInfoWindow.xib和班级CustomInfoWindow.swift.

我的自定义信息窗口目前是空白的,即我还没有UIControl向我的xib 添加任何s.我还没有在我的类文件中添加任何代码.

CustomInfoWindow.swift文件基本上看起来像:

import UIKit
class CustomInfoWindow: UIView {}
Run Code Online (Sandbox Code Playgroud)

在我的ViewController for my maps中,我的markerInfoWindow方法如下:

func mapView(mapView: GMSMapView!, markerInfoWindow marker: GMSMarker!) -> UIView! {
    let customInfoWindow = NSBundle.mainBundle().loadNibNamed("CustomInfoWindow", owner: self, options: nil)[0] as! CustomInfoWindow

    return customInfoWindow
}
Run Code Online (Sandbox Code Playgroud)

当我运行代码并单击我的一个标记时,空白CustomInfoWindow显示正常.

奇怪的是,当我CustomInfoWindow.xib在界面生成器中添加任何UI元素并再次运行我的应用程序时,然后突然当我点击标记时应用程序冻结.(例如,当我添加a UILabel或a UIImageCustomInfoWindow.xib.)如果我删除了UI元素,那么空白笔尖在标记上显示正常.

如果我通过在一些View Controller上将它作为子视图添加来测试我的笔尖,那么它可以用我的UILabelUIImage.但是,当我markerInfoWindow在应用程序冻结中使用相同的笔尖时.

问题是什么?

更新:此问题发生在适用于iOS的Google Maps SDK 1.13版本中,结果证明该版本存在错误.

kol*_*ate 4

我有同样的问题。这是 GoogleMaps 的错误!在 1.13.0 版本中冻结 apperrs。

您可以使用:

pod 'GoogleMaps', '1.12.3'
Run Code Online (Sandbox Code Playgroud)