在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
并再次运行我的应用程序,然后突然当我点击一个标记的应用程序冻结。 (例如,当我添加一个UILabel
或UIImage
到CustomInfoWindow.xib
。)如果我删除UI元素,那么空白的笔尖显示在标记的罚款。
如果我通过添加它作为子视图在一些视图控制器上testing我的笔尖,然后加载我的UILabel
和UIImage
罚款。 但是,当我在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