我不明白为什么userLocation在我设置costum图像时不会移动。
如果我没有设置图像,它使用默认的蓝色指针,它可以工作;我可以看到当位置发生变化时用户位置会移动。
这是我从其他帖子中获取的viewForAnnotation。
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
static NSString* AnnotationIdentifier = @"Annotation";
MKPinAnnotationView *pinView = (MKPinAnnotationView *)[mk dequeueReusableAnnotationViewWithIdentifier:AnnotationIdentifier];
if (!pinView)
{
pinView = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:AnnotationIdentifier] autorelease];
pinView.animatesDrop = NO;
pinView.canShowCallout = YES;
}
else
{
pinView.annotation = annotation;
}
if (annotation == mk.userLocation)
pinView.image = [UIImage imageNamed:@"PositionPin.png"];
else
pinView.image = [UIImage imageNamed:@"PositionPin.png"];
return pinView;
}
答案 0 :(得分:0)
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
static NSString* AnnotationIdentifier = @"Annotation";
MKPinAnnotationView *pinView = (MKPinAnnotationView *)[mk dequeueReusableAnnotationViewWithIdentifier:AnnotationIdentifier];
if (!pinView)
{
pinView = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:AnnotationIdentifier] autorelease];
pinView.animatesDrop = NO;
pinView.canShowCallout = YES;
}
pinView.annotation = annotation;
pinView.image = [UIImage imageNamed:@"PositionPin.png"];
return pinView;
}
答案 1 :(得分:0)
这似乎是地图视图中的错误(仍然存在于iOS 6中),当使用自定义注释视图时,用户位置坐标不再更新(即使文档表明它可以正常工作)。
解决方法是使用Core Location获取用户位置更新并创建自己的注释(而不是使用地图视图的userLocation
),然后在viewForAnnotation
中为其提供自定义图像。
请参阅Custom Annotation view for userlocation not moving the mapview的答案以获取更多详细信息以及一些实施变通方法的示例代码。
此外,请注意,在为注释视图使用自定义图像时,应使用MKAnnotationView
代替MKPinAnnotationView
。
使用MKPinAnnotationView
时,它有时会显示其默认的图片图片,而不是您的自定义图片。