隐藏地图注释而不删除它们

时间:2010-02-09 23:13:57

标签: iphone objective-c annotations mapkit

使用MKMapView我加载了一堆annoatations,我希望能够过滤使用分段控件显示的注释。

我正在使用带有类型变量的自定义注释,因此我可以将它们彼此区分开来,但我无法找到隐藏和显示注释视图子集的方法。

2 个答案:

答案 0 :(得分:9)

当然,试试这个:

Objective-C 解决方案:

[[yourMapView viewForAnnotation:yourAnnotation] setHidden:YES]

Swift 4 解决方案:

yourMapView.view(for: yourAnnotation)?.isHidden = true

这将返回与指定注释对象关联的视图,然后您可以将视图设置为隐藏。这是documentation

答案 1 :(得分:0)

如果你想隐藏MKAnnotationView(气泡),你可以创建一个自定义的:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{

    if (annotation==self.map.mapView.userLocation)
        return nil;


    MKAnnotationView *annotationView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"loc"];
    if([annotation isKindOfClass:[AnnotationCustomClass class]] ) {
        annotationView.canShowCallout = NO; // <- hide the bubble

    }

    return annotationView;

}