【问题标题】:How to eliminate the animation of the annotation on swift如何快速消除注释的动画
【发布时间】:2021-04-01 18:34:20
【问题描述】:

我正在使用 MapKit,我在地图上有一些注释。它们是markerAnnotationViews。问题是我希望在用户触摸注释时呈现视图控制器(无需通过标注附件视图)。

目前,我使用didSelectView with: MKAnnotationView 完成了此操作。但我的问题是,当我按下注解时,它会展开并显示以下视图控制器。

有没有办法让注释在用户按下时不展开?

谢谢。

编辑: 这就是我按下注释时呈现模态视图控制器的方式:

func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) {
    
    if let annotation = view.annotation as? FirstAnnotation {
        let rootVC = DetailPinVC()
        rootVC.title = "Detail Pin"
        rootVC.navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .close, target: self, action: #selector(dismissDetailVC))
        let navVC = UINavigationController(rootViewController: rootVC)
        present(navVC, animated: true)
    } else if let annotation = view.annotation as? SecondAnnotation {
        let rootVC = DetailPinVC()
        rootVC.title = "Detail Pin"
        rootVC.navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .close, target: self, action: #selector(dismissDetailVC))
        let navVC = UINavigationController(rootViewController: rootVC)

这是我的问题。当我关闭模式视图时,注释会在地图上保持展开状态。第一张照片是在我按下注释之前,第二张是之后。我希望“泡泡”保留为第一张照片:

【问题讨论】:

  • 你能通过代码来说明你是如何呈现视图控制器的吗?
  • 当然。我更新了问题
  • 尝试在您的didSelect 方法中调用mapView.deselectAnnotation(<#T##annotation: MKAnnotation?##MKAnnotation?#>, animated: <#T##Bool#>)。在 if/else 语句之外,所以它总是被调用。
  • 我以为我已经尝试过了,但我现在才尝试,它成功了,非常感谢:)

标签: swift annotations mapkit mkannotationview


【解决方案1】:

注释现在已被选中,因此看起来有所不同。

要继续使用didSelect 来监视注释上的点击事件,请立即在didSelect 内调用mapView.deselectAnnotation。这将取消选择注释并将其恢复为正常的未选择大小。

或者,您可以将UITapGestureRecognizer 添加到自定义annotationViews。这将释放您的 didSelect 方法,以便您可以在应用程序的功能集需要时轻松充分利用它。

【讨论】:

    【解决方案2】:

    你应该可以

    override func setSelected(_ selected: Bool, animated: Bool) {
        //super.setSelected(false, animated: false)
    }
    

    在您的 MKMarkerAnnotationView 子类中以防止选择。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-23
      • 2015-06-01
      • 2015-10-18
      • 2011-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多