如何禁用MKMapView上的用户交互?

你如何禁用iOS中的整个地图(MKMapView)的用户交互? 我只是想禁用缩放,敲击等,并显示一个静态地图。 [self.mapView setUserInteractionEnabled:NO]不起作用。 通过谷歌或其他答案find没有工作解决scheme在堆栈(如果你find一个工作的答案,请链接..) 。 针对iOS 5.应该有一个更简单的方法来做到这一点。

关键是禁用缩放和滚动,如:

 self.mapView.zoomEnabled = false; self.mapView.scrollEnabled = false; self.mapView.userInteractionEnabled = false; 

你可以在Interface Builder中这样做:

喜欢这个

这个小黑客怎么样 只需将UIView放置在具有所有相同框架细节的MKMapView之上即可。 还要注意,这个视图的backgroundColor应该是clearColor

您可以将MKAnnotationView的enabled属性设置为NO

为了禁用缩放,你可以设置mapView.zoomEnabled = FALSE;

启用

一个布尔值,指示注释是否已启用。

 @property (nonatomic, getter=isEnabled) BOOL enabled 

讨论

该属性的默认值是YES。 如果此属性的值为NO,则注释视图将忽略触摸事件并且不能被select。 根据这个属性的值,子类也可以显示不同的注解内容。