在iOS5中未选择MKAnnotation
我的应用程序在地图上放置一个图钉,然后选择它的使用动画,这样用户就有了视觉线索,可以立即阅读标题/副标题。下面的代码在iOS4和iOS5中都可以使用,但是在iOS5中,除非我在selectAnnotation方法中将动画更改为NO,否则注释不会自动被选中 你知道为什么吗在iOS5中未选择MKAnnotation,ios,animation,ios5,mkannotation,Ios,Animation,Ios5,Mkannotation,我的应用程序在地图上放置一个图钉,然后选择它的使用动画,这样用户就有了视觉线索,可以立即阅读标题/副标题。下面的代码在iOS4和iOS5中都可以使用,但是在iOS5中,除非我在selectAnnotation方法中将动画更改为NO,否则注释不会自动被选中 你知道为什么吗 MapAnnotations *pushpin = [[MapAnnotations alloc] initWithCoordinate:coordinate]; pushpin.title = [selectedStation
MapAnnotations *pushpin = [[MapAnnotations alloc] initWithCoordinate:coordinate];
pushpin.title = [selectedStation valueForKey:@"name"];
pushpin.subtitle = [selectedStation valueForKey:@"address"];
[stationMap addAnnotation:pushpin];
[stationMap selectAnnotation:pushpin animated:YES];
[pushpin release]; pushpin = nil;
不确定为什么之前可以工作,但动画可能需要创建注释视图并准备就绪,这在添加注释后不太可能立即进行 您可以做的是将选择移动到
didAddAnnotationViews
delegate方法,该方法应适用于所有iOS版本:
- (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views
{
for (MKAnnotationView *av in views) {
if ([av.annotation isKindOfClass:[MapAnnotations class]]) {
MapAnnotations *pushpin = (MapAnnotations *)av.annotation;
if (_this_pushpin_is_the_one_to_select) {
[mapView selectAnnotation:av.annotation animated:YES];
break; //or return;
}
}
}
}
谢谢他们一定在iOS5中对注释中的动画做了一些更改。这很有效。对于这样一件简单的事情来说,代码有点太多了,但可以完成这项工作。为了避免搜索,您可以在添加选定批注时将其引用保留为ivar,这样您只需要在委托中调用selectAnnotation。