我有以下代码:

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
  }
}

关于ios - 如何从MKAnnotationView标注中排除用户位置?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52407609/

10-11 11:01