【发布时间】:2017-08-11 09:18:10
【问题描述】:
使用 MKMapView 我加载了一堆注释,我希望能够过滤使用分段控件显示的注释。
我正在使用带有类型变量的自定义注释,因此我可以将它们彼此区分开,但我无法找到一种方法来随意隐藏和显示注释视图的子集。
【问题讨论】:
标签: iphone objective-c annotations mapkit
使用 MKMapView 我加载了一堆注释,我希望能够过滤使用分段控件显示的注释。
我正在使用带有类型变量的自定义注释,因此我可以将它们彼此区分开,但我无法找到一种方法来随意隐藏和显示注释视图的子集。
【问题讨论】:
标签: iphone objective-c annotations mapkit
当然,试试这个:
Objective-C解决方案:
[[yourMapView viewForAnnotation:yourAnnotation] setHidden:YES]
Swift 4解决方案:
yourMapView.view(for: yourAnnotation)?.isHidden = true
这将返回与指定注释对象关联的视图,然后您可以将视图设置为隐藏。这是documentation。
【讨论】:
如果你想隐藏 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;
}
【讨论】: