【发布时间】:2017-07-13 19:45:19
【问题描述】:
【问题讨论】:
-
我和这个人有同样的问题。 stackoverflow.com/questions/44223716/…有人知道为什么吗?
标签: swift storyboard google-maps-markers google-maps-sdk-ios infowindow
【问题讨论】:
标签: swift storyboard google-maps-markers google-maps-sdk-ios infowindow
我的应用遇到了这样一个问题。
在您的 ViewController.swift 中:
class ViewController: GMSMapViewDelegate {
func mapView(_ mapView: GMSMapView, markerInfoContents marker: GMSMarker) -> UIView? {
let placeMarker = marker as! PlaceMarker
if let infoView = UIView.viewFromNibName("MarkerInfoView") as? MarkerInfoView {
infoView.nameLabel.text = placeMarker.place.name
if let photo = placeMarker.place.photo {
infoView.placePhoto.image = photo
} else {
infoView.placePhoto.image = UIImage(named: "generic")
}
return infoView
} else {
return nil
}
}
}
2.然后创建一个UIView类:
import UIKit
class MarkerInfoView: UIView {
@IBOutlet weak var placePhoto: UIImageView!
@IBOutlet weak var nameLabel: UILabel!
}
注意类名与 UIView 类相同。您可以根据需要添加标签和图像。如图所示,将这些 IBOutlets 连接到 UIView 类。
希望这对您有所帮助。万事如意!
【讨论】:
为您的GMSMapView 定义一个委托并在您的委托中实现此功能:
func mapView(_ mapView: GMSMapView, markerInfoWindow marker: GMSMarker) -> UIView? { }
您可以在此函数内以编程方式或通过 nib 文件创建视图。
更新
不要忘记更改标记的 infoWindowAnchor: https://developers.google.com/maps/documentation/ios-sdk/reference/interface_g_m_s_marker.html#a6668957ca7b6857355ee6cd9ab944a92
【讨论】:
tracksInfoWindowChanges,它将开始显示 webview 的 html,但随后 cpu 会卡在完全使用状态。还能缺少什么?