convertPoint:FromView:并不总是返回正确的值

时间:2012-05-31 18:15:10

标签: iphone ios uiview mkmapview

我需要将我的注释坐标从我的地图坐标系转换为我的地图视图坐标系。为此,我使用convertPoint:FromView:方法。

它正在工作但有时会返回错误的值。

这是我的代码

- (CGFloat)relativeParentXPosition {
  NSLog(@"Point Origin: %@", NSStringFromCGPoint(self.parentAnnotationView.frame.origin));

  CGPoint parentOrigin = [self.mapView convertPoint:self.parentAnnotationView.frame.origin 
                                         fromView:self.parentAnnotationView.superview];

  NSLog(@"NEW PARENT Origin: %@", NSStringFromCGPoint(parentOrigin));

  return parentOrigin.x + self.offsetFromParent.x;
}

这是输出:

  
      
  • 工作
  •   
     

Point Origin:{9.92118e + 06,1.2004e + 07}

     

新父母来源:{39,218}

     
      
  • 不工作 - 返回错误的值
  •   
     

Point Origin:{9.92138e + 06,1.20039e + 07}

     

新父母来源:{9.92138e + 06,1.20037e + 07}

有人有这个问题吗?我不明白为什么会这样?这是Apple的错误吗? 感谢

1 个答案:

答案 0 :(得分:0)

我的坏,我使用了错误的方法。 要在视图坐标中获取注释的坐标,我们需要使用convertCoordinate:toPointToView:方法。

CGPoint parentOrigin = [self.mapView convertCoordinate:self.parentAnnotationView.annotation.coordinate toPointToView:self.mapView];

感谢@Jeffery Thomas让我走上正轨