我正在尝试在iOS应用上的Google Maps Marker上实现自定义信息窗口。 (例如,here和here完成。)
我为它创建了一个xib和一个UIView
类。它被称为CustomInfoWindow.xib
,类是CustomInfoWindow.swift
。
我的自定义信息窗口目前是空白的,即我尚未向我的xib添加任何UIControl
。我还没有在我的类文件中添加任何代码。
CustomInfoWindow.swift
文件基本上如下:
import UIKit
class CustomInfoWindow: UIView {}
在我的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
}
当我运行代码并点击其中一个标记时,空白CustomInfoWindow
显示正常。
奇怪的是,我将任何UI元素添加到Interface Builder中的CustomInfoWindow.xib
并再次运行我的应用程序然后突然点击应用程序冻结的标记时。 (例如,当我向UILabel
添加UIImage
或CustomInfoWindow.xib
时。)如果我删除了UI元素,那么空白笔尖在标记上显示正常。
如果我通过在某些View Controller上将其添加为子视图来测试我的笔尖,那么它可以通过我的UILabel
和UIImage
加载。但是,当我在markerInfoWindow
应用冻结中使用相同的笔尖时。
问题是什么?
更新: 此问题发生在适用于iOS的Google Maps SDK 1.13版本上,结果是bug on that version。
答案 0 :(得分:4)
我有同样的问题。这是GoogleMaps的错误! 在版本1.13.0中冻结apperrs。
您可以使用:
pod 'GoogleMaps', '1.12.3'
答案 1 :(得分:1)
找到1.13
的正确解决方法将以下代码添加到子类CustomInfoWindow
override func didMoveToSuperview() {
superview?.autoresizesSubviews = false;
}