Просмотр карты Google, как я могу получить исходную точку или рамку для аннотации при увеличении карты? - PullRequest
6 голосов
/ 16 декабря 2011

я установил пользовательский пин-код аннотации на карте, щелкнув аннотацией, я получил вызов для этого метода

(void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view NS_AVAILABLE(NA, 4_0)

в этом методе я хочу открыть всплывающее окно, поэтому я хочу, чтобы в форме фрейма (MKAnnotationView *) я получил правильный фрейм при отображении карты в обычном режиме.

но когда я масштабирую карту и нажимаю на аннотацию в то время, я получаю неправильный кадр в то время, когда значения x и y большие, поэтому любое решение для этого любого смещения или коэффициента масштабирования, которое я получаю, делю в соответствии с этим, поэтому я получить фактический кадр аннотации.

1 Ответ

6 голосов
/ 05 января 2012

Попробуйте это:

CGPoint annotationPoint = [mapView convertCoordinate:view.annotation.coordinate 
                                   toPointToView:mapView];
float boxDY = annotationPoint.y - 35;
float boxDX = annotationPoint.x - 1;
CGRect box = CGRectMake(boxDX, boxDY, 1, 1);
[popoverControllerDetail presentPopoverFromRect:box 
                                         inView:mapView 
                       permittedArrowDirections:(UIPopoverArrowDirectionDown|
                                                 UIPopoverArrowDirectionLeft|
                                                 UIPopoverArrowDirectionRight) 
                                       animated:YES];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...