gpt4 book ai didi

iphone - MKMapView 不更新用户位置图像

转载 作者:可可西里 更新时间:2023-11-01 05:48:08 26 4
gpt4 key购买 nike

我的 MKMapView 在启动时显示了我的位置,但随后图像永远不会“跟随”我。位置得到更新并且屏幕确实跟随我,但原始的“用户位置”图像留在后面。

下面是一些代码片段:

-(MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
static NSString* AnnotationIdentifier = @"Annotation";
MKPinAnnotationView *pinView = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:AnnotationIdentifier];
if(!pinView)
{
MKPinAnnotationView *customPinView = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:AnnotationIdentifier] autorelease];

if(annotation == mapView.userLocation) customPinView.image = [self rotate:[UIImage imageNamed:@"myCar.png"] orientation:UIImageOrientationUp];
else customPinView.image = [UIImage imageNamed:@"randomPin.png"];

customPinView.animatesDrop = NO;
customPinView.canShowCallout = YES;
return customPinView;
}
else
{
pinView.annotation = annotation;
}
return pinView;
}

-(void)locationUpdate:(CLLocation *)location
{
CLLocationCoordinate2D loc = [location coordinate];
if(isFollowing)
[myMapView setCenterCoordinate:loc];//Works
}

在我的 viewDidLoad 中,我确实调用了:[myMapView setShowsUserLocation:YES]; 这确实有效。

所以基本上在某个地方我忽略了更新我的位置,或者最有可能是我为当前位置绘制新图像的地方。

任何人都可以看到我在那里遗漏了什么或做错了什么,因为它不关注我的位置更新吗?

谢谢。

最佳答案

不清楚这是否是问题所在,但 viewForAnnotation 方法看起来不正确。

注释图像仅在创建注释 View 时设置。如果重新使用 View ,则会更新注释属性但不会更新图像。重新使用的 View 可能用于需要不同图像的不同类型的注释。

方法应该是这样的:

-(MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
static NSString* AnnotationIdentifier = @"Annotation";
MKPinAnnotationView *pinView = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:AnnotationIdentifier];
if (!pinView)
{
pinView = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:AnnotationIdentifier] autorelease];
pinView.animatesDrop = NO;
pinView.canShowCallout = YES;
}
else
{
pinView.annotation = annotation;
}

if (annotation == mapView.userLocation)
pinView.image = [self rotate:[UIImage imageNamed:@"myCar.png"] orientation:UIImageOrientationUp];
else
pinView.image = [UIImage imageNamed:@"randomPin.png"];

return pinView;
}

关于iphone - MKMapView 不更新用户位置图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6404884/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com