所以我遇到了最奇怪的问题,而且我已经去了所看似的每一个地方。我遇到的问题是我为我的MKMapView创建自定义注释视图。这个MKMapView以没有注释开始,当你更改区域时,然后创建注释并将其添加到地图中。在调用[my_map_view addAnnotation:a_annotation]时;什么都没发生。未调用mapView viewForAnnotation,并且没有显示任何内容。现在,这就是iPhone4的情况,但是当我在模拟器上运行相同的代码时,它最终会起作用。我想知道为什么会这样?我认为这是地图部分的刷新问题,因为当我双击手机并且地图执行缩放处理时,注释会显示出来。我知道你可以做一大堆[my_map_view setRegion:my_map_view.currentRegion];并设置中心的中心以尝试刷新我甚至尝试将区域更改为另一个但是没有任何作用。任何想法,我很难过,并且在过去的3天里一直在努力。
答案 0 :(得分:-1)
嘿伙计们,所以我解决了问题所在。每当您重新加载地图时遇到问题,我发现最好的解决方案是销毁并创建地图以显示您的注释。因此,请确保从视图版本中删除地图,将其设置为nil,然后重新分配内存并使用注释数据对其进行初始化。很抱歉没有发布代码我必须清理很多数据名称,以便:( - 如果这个解决方案无法正常工作继续向我发送消息,以便我可以通过代码与你一起。如果有的话,我总能做一个你的例子:)它可能是一段时间的工作原因。
此外,我的观点是针对你们的annot方法,因为我知道这是想发布的:)
-(MKAnnotationView*)mapView:(MKMapView*)mapView viewForAnnotation:(id<MKAnnotation>)annotation
{
MKAnnotationView *annotation_view = nil;
CustomAnnotation *annot = (CustomAnnotation*)annotation;
CustomAnnotationView *view;
view = [[[CustomAnnotationView alloc] initWithAnnotation:annot reuseIdentifier:@"Job"] autorelease];
[view addObserver:self forKeyPath:@"selected"options:NSKeyValueObservingOptionNew context:GMAP_ANNOTATION_SELECTED];
view.image = [UIImage imageNamed:@"map_marker"];
view.canShowCallout = YES;
annotation_view = view;
[annotation_view setEnabled:YES];
[annotation_view setCanShowCallout:YES];
return annotation_view;
}