objective-c – 禁用MKmapkit mapView userLocation annotationView

我有一个带有annotationViews的mapView和userLocation蓝点.

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

[self.mapView setShowsUserLocation:YES];

annotationViews是可选择的并具有标注.

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

我可以设置annotationView.enabled = NO;并且它将显示annotationView但它不会通过annotationView从关闭中窃取触摸.

我想将用户位置蓝点annotationView设置为enabled = NO,因此它不会通过annotationViews窃取关闭的触摸.

我可以设置蓝点的标题:

self.mapView.userLocation.title = @"title here..."

但我无法禁用蓝点.

谢谢!

解决方法

您可以通过在didAddAnnotationViews委托方法中获取对它的引用来设置用户位置的MKAnnotationView上的启用(这样您就可以确保视图已准备好):
-(void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views
{
    MKAnnotationView *ulv = [mapView viewForAnnotation:mapView.userLocation];
    ulv.enabled = NO;
}

(userLocation模型对象上没有启用的属性 – 它是视图的属性.)

相关文章

一.C语言中的static关键字 在C语言中,static可以用来修饰局...
浅谈C/C++中的指针和数组(二) 前面已经讨论了指针...
浅谈C/C++中的指针和数组(一)指针是C/C++...
从两个例子分析C语言的声明 在读《C专家编程》一书的第三章时...
C语言文件操作解析(一)在讨论C语言文件操作之前,先了解一下...
C语言文件操作解析(三) 在前面已经讨论了文件打开操作,下面...