使用MKMapView我加载了一堆annoatations,我希望能够过滤使用分段控件显示的注释。
我正在使用带有类型变量的自定义注释,因此我可以将它们彼此区分开来,但我无法找到隐藏和显示注释视图子集的方法。
答案 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;
}