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

我正在尝试在iOS应用的Google地图标记上实现自定义信息窗口。 (就像这里和这里所做的那样)

我为它创build了一个xib和一个UIView类。 它被称为CustomInfoWindow.xib ,类是CustomInfoWindow.swift

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

CustomInfoWindow.swift文件基本如下所示:

 import UIKit class CustomInfoWindow: UIView {} 

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

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

当我运行代码,并点击我的标记之一,空白CustomInfoWindow显示正常。

奇怪的是,当我添加任何UI元素到界面生成器中的CustomInfoWindow.xib并再次运行我的应用程序,然后突然当我点击一个标记的应用程序冻结。 (例如,当我添加一个UILabelUIImageCustomInfoWindow.xib 。)如果我删除UI元素,那么空白的笔尖显示在标记的罚款。

如果我通过添加它作为子视图在一些视图控制器上testing我的笔尖,然后加载我的UILabelUIImage罚款。 但是,当我在markerInfoWindow使用相同的笔尖时,应用程序会冻结。

问题是什么?

更新:这个问题发生在版本1.13的谷歌地图SDK的iOS版本,它原来是该版本的错误 。

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

您可以使用:

 pod 'GoogleMaps', '1.12.3' 

find适当的解决方法1.13

将下面的代码添加到子类CustomInfoWindow

 override func didMoveToSuperview() { superview?.autoresizesSubviews = false; } 

来源: https : //code.google.com/p/gmaps-api-issues/issues/detail?id = 9525