3

Вопрос по ios – показ выноски после перемещения карты

У меня есть несколько аннотаций на карте. После выбора одного из них (выноска включена) я хочу, чтобы карта была в центре. Я звоню[mapView setCenterCoordinate:coordinate animated:YES];вdidSelectAnnotationViewчтобы достичь этого.

Это работает, но не всегда - в основном, когда недостаточно места для отображения выноски, карта перемещается и аннотация выбирается, но выноска не отображается (не имеет значения, анимирован ли этот переход или нет). Если я сам не переместу карту сsetCenterCoordinateПосле выбора аннотации карта автоматически перемещается (слегка), чтобы показать выноску, и она работает каждый раз.

Есть идеи, как заставить это работать в моем случае? Подводя итог, хочу центрировать карту на выбранной аннотации и показать выноску.

1ответ

4

Решил, позвонивsetCenter с небольшой задержкой вdidSelectAnnotationView:

dispatch_time_t dt = dispatch_time(DISPATCH_TIME_NOW, 0.2 * NSEC_PER_SEC);
dispatch_after(dt, dispatch_get_main_queue(), ^(void)
{
    [mapView setCenterCoordinate:view.annotation.coordinate animated:YES];
});

RelatedQuestions