如何检查地图是否已加载到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/