Как я могу проверить, загружена ли карта в MKKapview?Я имею в виду ... просить, чтобы представление карты было готово - и не ждать уведомления mapViewDidFinishLoadingMap:
, которое не уведомляет, если оно уже буферизовано?
Мой сценарий использования для лучшего понимания проблемы: мое приложение должно print карта, которая создается в фоновом режиме, используя MKMapview.Загрузка карты может занять некоторое время, поэтому без проверки готовности карта будет неполной.Это хорошо видно на превью.Использование mapViewDidFinishLoadingMap:
помогает в первый раз.Но если я снова напечатаю только с немного другим регионом, я не получу уведомление.
Это мой фрагмент кода
-(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]];
}