Показ выноски после перемещения карты
У меня есть несколько аннотаций на карте. После выбора одного из них (выноска включена) я хочу, чтобы карта была в центре. Я звоню[mapView setCenterCoordinate:coordinate animated:YES];
в didSelectAnnotationView
чтобы достичь этого.
Это работает, но не всегда - в основном, когда недостаточно места для показа выноски, карта перемещается и аннотация выбирается, но выноска не отображается (не имеет значения, анимирован ли ход или нет). Если я сам не переместу карту setCenterCoordinate
После выбора аннотации карта автоматически перемещается (слегка), чтобы показать выноску, и она работает каждый раз.
Есть идеи, как заставить это работать в моем случае? Подводя итог, хочу центрировать карту на выбранной аннотации и показать выноску.
1 ответ
Решил, позвонив 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];
});