如何从 MKAnnotationView 标注中排除用户位置?

How to exclude user location from MKAnnotationView callout?

我有以下代码:

func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) {
    if view.annotation is MKUserLocation {
        view.canShowCallout = false
    } else {
        self.locationInfoContainerView.isHidden = false
    }
}

我希望这会执行以下操作:当我点击与用户位置不同的注释时显示容器视图。

这段代码的作用是在我点击 USERLOCATION 时显示容器视图,而不是在我单击地图上其他点的注释时显示容器视图(因此它的作用恰恰相反),我尝试像这样反转代码:

  func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) {
    if view.annotation is MKUserLocation {
        self.locationInfoContainerView.isHidden = false
    } else {
        view.canShowCallout = false    
    }
}

但这会产生相同的结果。有人可以澄清一下并帮助我编程所需的行为吗? I.E:当点击地图注释不同于地图上的用户位置时显示容器视图。

希望这已经足够清楚了,谢谢大家。

viewForAnnotation

中将标题设置为空
func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
  if let userAnnotation = annotation as? MKUserLocation {
    userAnnotation.title = ""
    return nil
  }
}

解决方案是:

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