MKMapview, как проверить (проверить), загружена ли карта? - PullRequest
0 голосов
/ 19 января 2019

Как я могу проверить, загружена ли карта в 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]];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...