我在我的iOS应用程序中有一个普通的地图,其中Shows Users Location
已启用 - 意味着我在地图上有正常的蓝点,显示我的位置和准确度信息。代码中的标注禁用。蓝色位置点是可选的,错误地拦截我的MKAnnotationViews触摸
但我也有自定义的MKAnnotationViews绘制在地图上,都有自定义标注。
这工作正常,但问题是,当我的位置在MKAnnotationView的位置上时,蓝点(MKUserLocation)截获触摸,所以MKAnnotationView不会被触及。
那么如何禁用蓝点上的用户交互,所以触摸被MKAnnotationViews截获而不是蓝点?
这是我做的,到目前为止:
- (MKAnnotationView *)mapView:(MKMapView *)map viewForAnnotation:(id <MKAnnotation>)annotation;
{
if (annotation == self.mapView.userLocation)
{
[self.mapView viewForAnnotation:annotation].canShowCallout = NO;
return [self.mapView viewForAnnotation:annotation];
} else {
...
}
}
我建议在'didAddAnnotationViews'仅用于用户位置注解enabled'设置''到NO'。如果您想禁用自己注释中的交互,则可以在创建视图时在'viewForAnnotation'中执行此操作。 – Anna
使用启用而不是userInteractionEnabled的优秀建议。解决了我的堆叠注释问题! – Lytic