禁用MKmapkit mapView userLocation annotationView

use*_*483 6 objective-c mapkit userlocation ios

我有一个mapViewannotationViewsuserLocation蓝点.

我使用以下代码获取蓝点:

[self.mapView setShowsUserLocation:YES];
Run Code Online (Sandbox Code Playgroud)

annotationViews可选择,并有标注.

但是,如果一个annotationView接近用户的位置,有时蓝点会窃取触摸.

我可以设置一个annotationView.enabled = NO;,它会显示annotationView但它不会从附近偷一个触摸annotationView.

我想将用户位置蓝点设置annotationView为enabled = NO,因此它不会触及附近的触摸annotationViews.

我可以设置蓝点的标题:

self.mapView.userLocation.title = @"title here..."
Run Code Online (Sandbox Code Playgroud)

但我无法禁用蓝点.

谢谢!

小智 8

您可以通过在委托方法中获取对它的引用来设置enabled用户位置(因此您可以确保视图已准备好):MKAnnotationViewdidAddAnnotationViews

-(void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views
{
    MKAnnotationView *ulv = [mapView viewForAnnotation:mapView.userLocation];
    ulv.enabled = NO;
}
Run Code Online (Sandbox Code Playgroud)

(模型对象enabled上没有属性- 它是视图的属性.)userLocation