如何在mapview中单击pin来显示Annotation视图?

时间:2010-12-07 09:06:05

标签: iphone

我已经实现了一个地图应用程序,其中我有当前位置的显示引脚动画。当我点击那时的引脚时,注释视图将打开。但我想展示 没有点击pin的注释视图。如果可能,那么请告诉我这个想法。

提前致谢。

3 个答案:

答案 0 :(得分:4)

试试:

似乎[mapView selectAnnotation:annotation animated:YES]也有效。

希望这有帮助。

答案 1 :(得分:2)

您只需要找到要选择的MKAnnotationView实例并调用-setSelected:animated:即可。

例如,您可以循环播放MKMapView的注释:

for (YOURCLASSHERE *a in mapView.annotations) {
    // Your current position (if shown) is an annotation as well. Thus check for the right class!
    if ([a isKindOfClass:[YOURCLASSHERE class]]) {
        // insert some smart if statement here, if you have multiple annotations!
        [[mapView viewForAnnotation:a] setSelected:YES animated:YES];
    }
}

YOURCLASSHERE是您的类,它实现了MKAnnotation协议。

当然,如果您已经知道了annotationView,那么循环是多余的。

答案 2 :(得分:-2)

我们可以通过点击它来显示注释。使用以下代码:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation{
     static NSString *identifier = @"Pin";

    MKPinAnnotationView *pin = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:identifier];
    pin.canShowCallout = YES;
    [pin setSelected:YES animated:NO];

    return [pin autorelease];
}