2011-12-16 12 views
6

mogę ustawić niestandardowe adnotacji szpilkę w mapie na kliknięcie adnotacji mi się zadzwonić do tej metodyGoogle map zobacz, jak mogę uzyskać oryginalny punkt lub ramkę dla adnotacji podczas powiększania mapy?

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

w tej metodzie chcę otworzyć popover więc chcę formę ramki (MKAnnotationView *) widok dostaję prawej ramce czasu mapa w trybie normalnym.

ale kiedy powiększam mapę i klikam adnotację w tym czasie otrzymuję błędną klatkę w tym czasie wartość xiy jest duża, więc każde rozwiązanie dla tego jakiegokolwiek przesunięcia lub współczynnika powiększenia dostaję tak dzielę zgodnie z tym, więc otrzymuję aktualną ramkę adnotacji.

+0

Pokaż kod masz w tej metodzie. – Anna

Odpowiedz

6

Spróbuj tego:

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]; 
Powiązane problemy