谷歌地图视图如何在地图缩放时获得注释的原始点或框架?

时间:2011-12-16 14:03:17

标签: iphone objective-c ios xcode ipad

我在点击注释时在地图中设置自定义注释引脚我得到了这个方法的调用

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

在那个方法中我想打开popover所以我想要帧格式(MKAnnotationView *)视图我在正常模式下映射时得到正确的帧。

但当我缩放地图并单击当时的注释时,我得到错误的帧,那时x和y值很大,所以我得到的任何偏移或缩放因子的任何解决方案我都按照那样划分所以我得到实际的注释框架。

1 个答案:

答案 0 :(得分:6)

试试这个:

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];