use*_*748 6 google-maps ios swift
我在iOS应用程序中使用Google Maps API.在会话结束时,地图缩小并捕获屏幕截图.不幸的是,在拍摄屏幕截图之前,地图通常没有时间加载缩放曝光的所有图块.
我看到Apple的MKMapView有一个mapViewDidFinishLoadingMap委托.Google API中是否提供了类似的内容?
小智 6
Google Maps SDK for iOS有一个名为mapViewDidFinishTileRendering的方法,在地图完成渲染时调用该方法.
-(void)mapViewDidFinishTileRendering:(GMSMapView *)mapView{
//TAKE THE SCREENSHOT HERE
}
Run Code Online (Sandbox Code Playgroud)
另外,不要忘记设置委托.
小智 5
iOS SDK 有一个函数mapViewSnapshotReady你可以使用引用协议GMSMapViewDelegate
参考说明:
在地图稳定(已加载图块、渲染标签、相机空闲)并且已渲染叠加对象时调用。
func mapViewSnapshotReady(_ mapView: GMSMapView) {
// map ready to use
}
Run Code Online (Sandbox Code Playgroud)
在Google Maps Javascript API中,您可以使用事件侦听器来处理各种UI事件,例如tilesloaded事件。
但是,Google Maps iOS SDK 没有任何事件侦听器。您必须使用GMSMapViewDelegate委托方法来检测 UI 事件。对于您的情况,我认为mapView:idleAtCameraPosition:可能对您有帮助。