为什么MKMapView会像针一样显示用户的位置?

时间:2017-11-22 23:39:52

标签: ios swift mapkit

我有一个mapView我要在其中显示用户的当前位置。但是,我不希望将mapView置于该位置的中心(它位于其他位置的中心)。因此,由于这个原因,我没有获得用户设置区域的位置坐标。我只需要调用showsUserLocation并将其设置为true。一切正常,除了这使得mapView显示用户的当前位置就像一个引脚。我希望它是一个默认蓝点的形式。

与上述问题相关,我有两个问题: 1)为什么它将用户的当前位置显示为引脚? 2)如何让用户将当前位置显示为蓝点?

如果您知道这些问题的答案(或仅知道其中一个问题),我将非常感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

一切都取决于您对地图视图委托mapView(_:viewFor:)的实施情况。你可能正在返回一个pin注释。

您可以通过检查其类(MKUserLocation)来区分地图视图提供的注释作为用户的位置。如果您想要默认的蓝点,请返回该类的nil

答案 1 :(得分:0)

在 Swift 5 中

我们需要检查注解的类型,如果是用户位置不想返回pin:

func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
    if annotation is MKUserLocation {
        return nil
    }

    [... code for the other annotations ... ]

}

现在您将看到您的位置为一个经典的蓝点。