【问题标题】:Hide MKUserLocation when MKMapView showsUserLocation == YES当 MKMapView 显示 UserLocation == YES 时隐藏 MKUserLocation
【发布时间】:2012-03-14 23:25:33
【问题描述】:

mapView.showsUserLocation 设置为true 后,是否可以在不显示MKUserLocation 气泡的情况下接收位置更新?在mapView:viewForAnnotation: 中返回 nil 只会显示气泡,返回任何其他类型的注释会显示我不想要的注释。

【问题讨论】:

    标签: ios location mkmapview mkannotation


    【解决方案1】:

    您可以在didAddAnnotationViews 委托方法中隐藏用户位置的视图:

    -(void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views
    {
        MKAnnotationView *ulv = [mapView viewForAnnotation:mapView.userLocation];
        ulv.hidden = YES;
    }
    

    【讨论】:

    • 哇,完美。我没有意识到你可以这样操作 MKAnnotationViews。虽然我认为这是有道理的,因为它们只是 UI 对象。谢谢!
    • @Elgert,此方法应该在实现 MKMapView 委托的类中(通常是包含地图视图的类)。确保已设置地图视图的委托属性。
    • 我照你说的做了,但蓝色标记仍然出现:(
    • @Elgert,请提出一个新问题,提供详细信息和您正在使用的代码。
    【解决方案2】:

    斯威夫特 3:

    func mapView(_ mapView: MKMapView, didAdd views: [MKAnnotationView]) {
       if let userLocation = mapView.view(for: mapView.userLocation) {
            userLocation.isHidden = true
       }
    }
    

    【讨论】:

      猜你喜欢
      • 2011-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-03
      相关资源
      最近更新 更多