更改位置时MKPinAnnotationView不移动

时间:2013-07-01 12:55:06

标签: iphone objective-c ios6 mkmapview mkannotationview

我正在开发基于位置的应用程序,我需要根据更改位置移动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我已经实施但是Pin留在那里。

看到这张图片: enter image description here

你可以看到绿色引脚是起点&amp;另一方是目前的观点。所以引脚应该在我想要的当前点上。

我搜索过&amp;尝试了很少的堆栈解决方案,但无法解决我的问题。

任何建议&amp;帮助将受到高度赞赏。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我从@AnnaKarenina得到解决方案建议非常感谢你。

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

pinView.annotation.coordinate = newLocation.coordinate;

此行我添加到didUpdateToLocation方法中,该方法允许注释每次都获取新位置。

再次感谢。