如何使用 Swift 显示自定义注释,即使它位于用户的当前位置

Posted

技术标签:

【中文标题】如何使用 Swift 显示自定义注释,即使它位于用户的当前位置【英文标题】:How to show custom annotation even if it's on the user's current location with Swift 【发布时间】:2020-01-24 11:30:41 【问题描述】:

我拖了 UIViewControllers 第一个显示带有注释和用户当前位置的 MKMapKitView,在第二个 viewController 中我将构建将显示到第一个 viewController 的注释。

我发现如果用户的位置和注解相同,mapView 只会显示用户的当前位置。

这是我创建注释的代码:

  func addAnnotiation(for locationCoordinate: CLLocationCoordinate2D) 
    let annotationPoint = MKPointAnnotation()
    annotationPoint.coordinate = locationCoordinate
    mapView.addAnnotation(annotationPoint)
  

我的MKMapViewDelegate 方法:

  func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? 
    let identifier = "Annotation"
    var annotationView = mapView.dequeueReusableAnnotationView(withIdentifier: identifier)

    if annotationView == nil 
        annotationView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: identifier)
        annotationView!.canShowCallout = true
     else 
        annotationView!.annotation = annotation
    

    return annotationView
  

我该如何解决这个问题,如果注释和用户的位置相同,它也会显示注释,而不仅仅是用户的当前位置?

【问题讨论】:

如果我正在阅读此内容,您想要添加的注释是否与用户当前位置的坐标相同? 是的,注释图钉“可能”与用户的当前位置相同,如果是这样……它应该显示在用户当前位置的上方。 看看这个question 【参考方案1】:

问题很简单。我不知何故忘记了mapView.delegate = self。现在一切正常!

【讨论】:

以上是关于如何使用 Swift 显示自定义注释,即使它位于用户的当前位置的主要内容,如果未能解决你的问题,请参考以下文章

自定义表格单元格不显示任何内容 - Swift 2

如何将默认蓝色注释用于用户位置而不是我的自定义注释?

如何在 MKMapView 上显示自定义注释?

Swift 3 自定义单元格在滚动时更改

Android - 自定义列表视图项始终位于左侧

如何在java web项目中添加自定义注解