ios - 禁用 MKMapView 的所有用户交互,除了给定的 MKAnnotationView

标签 ios mkmapview mkannotationview

我的 map 上有一个 MKMapView 和一些 MKAnnotationViews。

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

理想情况下,它将是

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

打印
[self.mapView recursiveDescription]

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

有任何想法吗?

最佳答案

在 mapView 上,设置 scrollEnabled , zoomEnabled , pitchEnabled , 和 rotateEnabledNO离开userInteractionEnabledYES .

这样,注释 View 仍将启用。

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

关于ios - 禁用 MKMapView 的所有用户交互,除了给定的 MKAnnotationView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20351364/

相关文章:

ios - 区分 UserLocation Pin 和用户添加的 Pin 之间的区别

ios - 当我点击 Pin 图时,没有得到正确的数据。解决方案?

ios - Apple 的服务器端 Swift 框架

ios - Swift: UIImagePicker 可以自动打开上次拍摄的照片吗?

google-maps - Flutter 中的谷歌地图导航

ios - 在不使 MKOverlay 变暗的情况下使 MKMapView 的背景颜色变暗

ios - 在 iOS 11 中的 whatsapp 上分享带标题的图片

ios - Swift 循环绘制多条路径

iPhone:20 分钟后 MapView 中的应用程序崩溃

ios - 在 MKMapView 上旋转注释图像