MKMapview如何检查(探测)是否已加载地图?

时间:2019-01-19 11:50:58

标签: objective-c macos mkmapview

如何检查地图是否已加载到MKKapview中?我的意思是……要求地图视图准备就绪-而不是等待通知mapViewDidFinishLoadingMap:,通知mapViewDidFinishLoadingMap:不会通知它是否已被缓冲?

我的用例可以更好地理解问题:我的应用程序应该打印一张使用MKMapview在后台创建的地图。加载地图可能需要一段时间,因此如果不检查就绪性,地图将是不完整的。这可以在预览中清楚地看到。首次使用-(IBAction)print:(id)sender { [self prepareClonedMap]; } -(void) prepareClonedMap { [self cloneMap:scaling]; // I would like here ... if ( mapIsReady ) [self executePrint]; } -(void)mapViewDidFinishLoadingMap:(MKMapView *)mapView { [self executePrint]; } -(void)executePrint { // make MKMapSnapshot // create printoperation ..... } -(void)cloneMap:(CGFloat) factor { NSRect myframe; // expand to max factor myframe=mapView.frame; myframe.size.height = myframe.size.height * factor, myframe.size.width = myframe.size.width * factor; // reduce to max dimensions myframe.size = [self maxDimensionWithRatio:myframe.size]; [cloneView setFrame:myframe]; [cloneView setRegion:[mapView region]]; } 会有所帮助。但是,如果我再次打印的区域略有不同,我将不会收到通知。

这是我的代码最简洁

https://example.com/

0 个答案:

没有答案