禁用MKMapView的所有用户交互,但给定的MKAnnotationView除外

时间:2013-12-03 12:35:12

标签: ios mkmapview mkannotationview

我的地图上有一个MKMapView和一些MKAnnotationViews。

当某个事件发生时,我想在我的MKMapView上禁用用户交互,但在我的MKAnnotationView上保留交互。

理想情况下,它会是

self.mapView.userInteraction = NO;
self.myAnnotationView.userInteraction = YES;

打印

[self.mapView recursiveDescription]

我发现我的注释视图嵌套在MKNewAnnotationContainerView中,它在Apple的类引用中没有公开的属性。

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

在mapView上,将scrollEnabledzoomEnabledpitchEnabledrotateEnabled设置为NO,并将userInteractionEnabled设为YES }。

这样,仍然会启用注释视图。

对于pitchEnabledrotateEnabled,您可能需要在设置之前检查这些属性是否存在(例如,检查地图视图respondsToSelector:@selector(setPitchEnabled)等),因为它们已添加到iOS 7。