当使用 Swift 移动地图时隐藏 Google 地图信息 window
Hide Google Map info window when map is moved with Swift
所以对于我的应用程序,我在 GMS 标记上显示自定义信息 window。此信息 window 占据了屏幕的上半部分,我不希望它随标记一起移动。所以我想在地图移动后立即隐藏信息 window。我该怎么做?
您可以使 UIViewController
符合 GMSMapViewDelegate
,然后实施此处列出的方法之一:https://developers.google.com/maps/documentation/ios-sdk/reference/protocol_g_m_s_map_view_delegate-p
我想第一个 (mapView:willMove:
) 对你有用。我会使用打印语句(或断点)来检查该方法是否按预期触发。要隐藏当前信息 window,您应该可以设置 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
}
}
}
所以对于我的应用程序,我在 GMS 标记上显示自定义信息 window。此信息 window 占据了屏幕的上半部分,我不希望它随标记一起移动。所以我想在地图移动后立即隐藏信息 window。我该怎么做?
您可以使 UIViewController
符合 GMSMapViewDelegate
,然后实施此处列出的方法之一:https://developers.google.com/maps/documentation/ios-sdk/reference/protocol_g_m_s_map_view_delegate-p
我想第一个 (mapView:willMove:
) 对你有用。我会使用打印语句(或断点)来检查该方法是否按预期触发。要隐藏当前信息 window,您应该可以设置 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
}
}
}