【发布时间】:2021-09-05 02:52:36
【问题描述】:
因此,对于我的应用,我在 GMS 标记上显示了一个自定义信息窗口。此信息窗口占据屏幕的上半部分,我不希望它与标记一起移动。所以我想在地图移动后立即隐藏信息窗口。我该怎么做?
【问题讨论】:
因此,对于我的应用,我在 GMS 标记上显示了一个自定义信息窗口。此信息窗口占据屏幕的上半部分,我不希望它与标记一起移动。所以我想在地图移动后立即隐藏信息窗口。我该怎么做?
【问题讨论】:
您可以使您的UIViewController 符合GMSMapViewDelegate,然后实现此处列出的方法之一:https://developers.google.com/maps/documentation/ios-sdk/reference/protocol_g_m_s_map_view_delegate-p
我想第一个 (mapView:willMove:) 对你有用。我会使用打印语句(或断点)来检查该方法是否按预期触发。要隐藏当前信息窗口,您应该可以设置mapView.selectedMarker = nil。
总而言之,您的代码可能如下所示:
import UIKit
import GoogleMaps
class ViewController: UIViewController {
//declare your map, etc.
override func viewDidLoad() {
super.viewDidLoad()
// setup your map
}
}
extension ViewController: GMSMapViewDelegate {
func mapView(_ mapView: GMSMapView, willMove gesture: Bool) {
if gesture { //The map was moved by the user
//mapView.selectedMarker = nil
}
}
}
【讨论】:
gesture 参数(请参阅我更新的答案)。