【问题标题】:MKPinAnnotationView not moving while change locationMKPinAnnotationView 在更改位置时不移动
【发布时间】:2013-06-28 14:31:02
【问题描述】:

我正在开发基于位置的应用程序,我需要根据更改位置移动MKAnnotation Pin。这意味着当用户从一个地方改变位置到另一个地方时,注释应该被移动。

这是我的注释代码:

-(MKAnnotationView *)mapView:(MKMapView *)mV viewForAnnotation:(id <MKAnnotation>)annotation
{
    static NSString *defaultPinID = @"com.invasivecode.pin";
    pinView = (MKPinAnnotationView *)[mV dequeueReusableAnnotationViewWithIdentifier:defaultPinID];
    if (pinView == nil)
    {
        pinView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:defaultPinID];
        pinView.enabled = YES;
        pinView.pinColor = MKPinAnnotationColorGreen;
        pinView.canShowCallout = YES;
    }
    return pinView;
}

它会将图钉放在当前位置,但是当我使用设备移动时,位置发生了变化,而且MKPolyline 我有工具,但图钉留在了那里。

看到这张图片:

您可以在此看到绿色大头针是起点,另一边是当前点。所以引脚应该在我想要的当前点上。

我已经搜索并尝试了一些堆栈解决方案,但无法解决我的问题。

我们将不胜感激任何建议和帮助。

提前致谢。

【问题讨论】:

  • 您尝试过哪些解决方案?这个你试过了吗:stackoverflow.com/questions/11432746/…
  • @AnnaKarenina 做到了,但注解仍然不动
  • 您应该发布您尝试过的代码。图片不需要。
  • @AnnaKarenina 是的,我已经发布了我的代码,但我想确切地表明我正在获得快速理解的结果。
  • viewForAnnotation 中的代码仅决定注解的显示方式(它不会使其“移动”)。按照链接答案中的建议显示更改注释坐标的代码。

标签: iphone objective-c ios6 mkmapview mkannotationview


【解决方案1】:

我从@AnnaKarenina 的建议中得到了解决方案,非常感谢。

我所做的就是让我的 MKPinAnnotationView 全局化然后:

pinView.annotation.coordinate = newLocation.coordinate;

我在didUpdateToLocation 方法中添加了这一行,它允许注释每次都获取新位置。

再次感谢。

【讨论】:

  • 从技术上讲,链接的答案建议保留对 id 对象的引用,该对象是您传递给 addAnnotation 的对象(不是 MKAnnotationView)。仅当您只有一个注释时,才能保留对视图的引用。
猜你喜欢
  • 1970-01-01
  • 2016-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多