cha*_*tta 14 mkmapview ios mkmapviewdelegate
点击表示userLocation的脉动蓝色圆圈会显示"当前位置"标注.有没有办法压制那个?
jow*_*wie 18
一旦用户位置更新,您可以更改注释视图中的属性:
- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
{
    MKAnnotationView *userLocationView = [mapView viewForAnnotation:userLocation];   
    userLocationView.canShowCallout = NO;
}    
Run Code Online (Sandbox Code Playgroud)
        小智 17
您可以将其设置title为空以禁止标注:
mapView.userLocation.title = @"";
Run Code Online (Sandbox Code Playgroud)
编辑:
 
更可靠的方法可能是在didUpdateUserLocation委托方法中清空标题:
-(void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
{
    userLocation.title = @"";
}
Run Code Online (Sandbox Code Playgroud)
或者在viewForAnnotation:
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>) annotation
{
    if ([annotation isKindOfClass:[MKUserLocation class]])
    {
        ((MKUserLocation *)annotation).title = @"";
        return nil;
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)
在委托方法中设置标题可以确保您有一个真正的userLocation实例可以使用.
斯威夫特 4
// MARK: - MKMapViewDelegate
func mapViewDidFinishLoadingMap(_ mapView: MKMapView) {
    if let userLocationView = mapView.view(for: mapView.userLocation) {
        userLocationView.canShowCallout = false
    }
}
Run Code Online (Sandbox Code Playgroud)
        |   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           5259 次  |  
        
|   最近记录:  |